我目前能够以编程方式运行JUnit测试:
JUnitCore junit = new JUnitCore();
Result result = new Result();
File root = new File("rootWhereSommatoreTest.classIS");
URLClassLoader classLoader = URLClassLoader.newInstance(new URL[]{root.toURI().toURL() });
Class<?> cls = classLoader.loadClass("SommatoreTest");
result = junit.run(cls);
return result;
我不喜欢这段代码的是SommatoreTest.class必须与Sommatore.class在同一目录下才能工作。所以我想知道是否有可能运行Junit测试,从同一个ClassLoader中的不同目录中加载单独的.class文件,使SommatoreTest能够&#34;看到&#34; Sommatore。
提前感谢您的回答!并保持良好的工作!
答案 0 :(得分:0)
您只需要确保提供给URL
的{{1}}与您的测试类的根文件夹或 jar文件包含您的测试类。
在您的情况下,您似乎使用了一个目录,因此假设您的类的FQN为URLClassLoader
而文件my.package.MyTest
位于目录MyTest.class
中,那么您需要制作确保/my/class/dir/my/package
与测试类的根文件夹匹配,在这种情况下URL
。