0

不是每个插件都可以在没有项目的情况下进行测试。比如我想测试CDT-Plug-in,所以我需要导入一个C-project。但是在运行配置中没有这样的点,当我尝试通过 SWT 插件测试记录器记录导入操作时,SWTBot 之后无法重播它们。谷歌对这个话题保持沉默。我怎么做?

4

2 回答 2

0

一个很好的方法是使用 eclipse 资源模型 看看这个包

org.eclipse.core.resources

这是一种在工作区中创建新项目的方法

private IProject getNewOpenProject(IWorkspace wks, String name)
        throws CoreException {
    System.out.print("Creating project " + name + "...");
    IProjectDescription prj1ProjectDescription = wks
            .newProjectDescription(name);
    IProject prj = wks.getRoot().getProject(name);
    prj.create(prj1ProjectDescription, null);
    prj.open(null);
    System.out.println("    [OK]");
    return prj;
}

此方法会将您的内容导入到 eclipse 项目中

private void importDirIntoProject(File srcPath, IProject prj,
        IOverwriteQuery overwriteQuery) throws InvocationTargetException,
        InterruptedException {
    ImportOperation op = new ImportOperation(prj.getFullPath(), srcPath,
            FileSystemStructureProvider.INSTANCE, overwriteQuery);
    op.setCreateContainerStructure(false);
    op.run(new NullProgressMonitor());
}

这种方法使用本机 eclipse 机制。我认为这比在 SWTBot 上使用不方便的方式要好。

于 2014-09-02T09:46:48.637 回答
0

您的测试有责任在其设置方法中创建必要的资源,并在之后清理它们。这不是在运行配置中配置的东西,而是在您的测试中编写代码。

您可以使用 SWTBot 导入/创建 C 项目,也可以使用 beanie 建议的项目 API。

于 2014-10-01T10:01:08.280 回答