我创建了一个eclipse(Juno)插件,用于在创建项目时自动创建junit启动配置。我在工作空间中监听更改,并在创建新的Java项目时,启动一个过程来创建相应的启动配置:
public static void create(IProject project) {
ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
ILaunchConfigurationType launchType = manager
.getLaunchConfigurationType(JUNIT_LAUNCH_IDENTIFIER);
try {
ILaunchConfigurationWorkingCopy workingCopy = launchType.newInstance(null, project.getName());
List<IResource> resources = new ArrayList<IResource>();
resources.add(project);
IResource[] resourcesArray = toArray(resources);
workingCopy.setMappedResources(resources.toArray(resourcesArray) );
workingCopy.setAttribute("org.eclipse.jdt.junit.CONTAINER", project.getName().replace("#", "\\#"));
workingCopy.setAttribute("org.eclipse.jdt.junit.KEEPRUNNING_ATTR", false);
workingCopy.setAttribute("org.eclipse.jdt.junit.TESTNAME", "");
workingCopy.setAttribute("org.eclipse.jdt.junit.TEST_KIND", "org.eclipse.jdt.junit.loader.junit4");
workingCopy.setAttribute("org.eclipse.jdt.launching.MAIN_TYPE", "");
workingCopy.setAttribute("org.eclipse.jdt.launching.PROJECT_ATTR", "");
workingCopy.setAttribute("org.eclipse.jdt.launching.VM_ARGUMENTS", "-Xms128m -Xmx512m -DSYS_DRIVE=${env_var:SYS_DRIVE} " +
"-DAPPL_DRIVE=${env_var:APPL_DRIVE} -DDATA1_DRIVE=${env_var:DATA1_DRIVE} -DSYS_DIR=${env_var:SYS_DIR} " +
"-DEXT1_DRIVE=F: -DTESTDATA_ROOT=${workspace_loc:trunk#IS+LVIS/testdata}");
workingCopy.doSave();
} catch (CoreException e) {
log.log(Level.WARNING,
"Unable to create a new launch configuration.", e);
}
}
通过workCopy.setMappedResources()方法,我给出了相应的IProject作为参数。我尝试插件,我创建了一个名为&#39; testProject&#39;的项目,我的插件接收事件并创建junit启动配置文件。我检查文件,我在编辑器中打开它,并设置上面的属性。现在我打开了eclipse调试配置对话框,我遇到了问题
看起来对话框打开覆盖了启动配置,我没有在对话框中选择任何项目。
另一件事是,当我在包浏览器视图中右键单击我的项目以将项目调试为Junit时,它会创建另一个具有相同名称和后缀(1)的启动配置。所以&#34; testProject(1)&#34;。