我正在开发一个Eclipse插件,用于修改Java项目的某些类(插入或更新代码部分,删除或其他内容),将这些临时类复制到新文件夹中,尝试编译它们,如果编译成功,则对这些修改过的类运行JUnit测试。 JUnit测试收集在.jar文件中,但是我从插件中运行这些测试时遇到了一些麻烦,因为它所处理的项目位于不同的工作区。 目前,我可以打开此.jar并阅读所有测试类和测试方法。 我尝试使用JUnitCore.run来执行每一个测试方法,但我不明白如何从两个不同的工作区运行这些测试。
JUnitCore j = new JUnitCore();
for (String test : Analizer.getTestJar().getTestList())
{
Request methodReq = Request.method(AllTests.class, test);
Result res = j.run(methodReq);
boolean succ = res.wasSuccessful();
int failure = res.getFailureCount();
List<Failure> failures = res.getFailures();
}
在其他一些例子中,我看到也许我可以使用JUnitWorkbenchLaunchShortcut和扩展TestRunListener的类,但我不确定它在这种情况下可以帮助我。
我该怎么做? 是否可能仅在插件的调试阶段存在此问题? 谢谢。