以编程方式运行JUnit测试,加载不同的.class文件



我目前能够以编程方式运行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必须和sommatoreclass在同一个目录下才能工作。所以我想知道是否有可能运行Junit测试,在同一个ClassLoader中从不同目录分别加载。class文件,使SommatoreTest"看到"Sommatore。

提前感谢您的回答!再接再厉!

您只需要确保提供给URLClassLoaderURL与测试类的根文件夹或包含测试类的jar文件匹配。

在您的情况下,您似乎使用目录,因此假设您的类的FQN是my.package.MyTest,文件MyTest.class在目录/my/class/dir/my/package中,那么您需要确保URL将与您的测试类的根文件夹匹配,在这种情况下将是/my/class/dir/

相关内容

  • 没有找到相关文章

最新更新