【发布时间】:2015-01-05 22:38:16
【问题描述】:
我正在写一个JUnit Plug-In Test,它将从WorkSpace 中打开一个Java Project,并将其传递给第三方库进行进一步处理。这是我目前所拥有的:
@Test
public void testJavaProjectForwarding() {
try {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IWorkspace workspace = root.getWorkspace();
Map<String, IJavaProject> javaProjects = new HashMap<>();
System.out.println("Nr. of projects: " + javaProjects.size());
for(IProject project : workspace.getProjects()) {
if(project.isOpen() && isJavaProject(project)) {
IJavaProject javaProject = JavaCore.create(project);
javaProjects.put(project.getName(), javaProject);
}
}
System.out.println("Nr. of Java projects: " + javaProjects.size());
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我首先打印出总体项目的数量,然后打印出Java 项目的数量。然而,两个输出都是 0。这是由于运行 Plug-in Test 时工作空间为空。我的问题是:如何设置 Plug-in Test 工作区以包含项目?我是否必须在Launch Configuration 中执行此操作,或者我可以在某个地方以编程方式将它们添加到测试中?感谢您的帮助!
【问题讨论】:
-
您可以通过编程方式创建项目,但这是相当多的代码。您可以打开 Eclipse,指定“插件测试”工作区并使用 Eclipse 创建它们。
-
正如 Greg 所说,在 Eclipse 中手动创建项目是一个不错的选择。您甚至可以压缩项目并让您的测试提取并打开它。如果您确实想以编程方式创建它,那么
JavaProjectWizard类有您需要的代码。 -
@greg-449 非常感谢您的帮助!您能否给我一个简短的链接,我可以在其中找到更多详细信息或提供有关如何执行此操作的说明的小列表?再次感谢!
-
不应手动准备单元测试的重复、可变环境。
标签: java eclipse junit eclipse-plugin