我编写了一个eclipse插件,作为其工作的一部分,它读取当前活动项目的所有测试用例并运行它们。问题是当它想运行测试用例时我得到错误 initializationError:没有可运行的方法。
可能有用的额外信息: 单元测试代码正在运行JUnit4.11。所有测试用例都使用@Test注释。测试都是公开的,而不是静态的。当我直接运行它们时,测试工作正常。因此,测试没有问题,可能是因为下面的代码我用来加载测试类然后运行它。
我用来加载类然后运行测试用例的代码:(假设在eclipse中打开的活动项目是ExampleProject)。
//Load class contains test cases
File root = new File("c:\ExampleProject\bin")
classLoader = URLClassLoader.newInstance(new URL[] {root.toURI().toURL()});
cls = Class.forName(testClassName, true, classLoader);
//Above lines work and I have test class determined with testClassName
//create a request
Request request = Request.aClass(cls);
//run the request
Result result = new JUnitCore().run(request);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
它打印 initializationError(testClassName):没有可运行的方法。
如果有人知道问题是什么以及我该如何解决,请告诉我。
PS:请注意,当我从我的插件(C:\ myplugin \ bin)运行测试用例时,上面的代码工作正常并运行插件中存在的测试用例,但是当我想从当前运行测试时项目然后得到上面的运行时错误。可能有些关于classPath的错误?