我正在撰写JUnit Plug-In Test
,它会从Java Project
打开WorkSpace
并将其传递给第三方库以进行进一步处理。这就是我到目前为止所做的:
@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
中执行此操作,还是可以在某个地方以编程方式添加它们?谢谢你的帮助!
答案 0 :(得分:0)
示例:org.eclipse.ui.internal.wizards.datatransfer.WizardProjectsImportPage.createExistingProject(ProjectRecord,IProgressMonitor)。它显示了如何复制源项目,以便单元测试不会更改它。您可以从头开始创建一个项目描述,而不是使用precreated(例如Eclipse)项目描述。 子>