【发布时间】:2014-07-24 16:03:23
【问题描述】:
我需要制作一个基于用户提供的输入文件运行测试的 JUnit 测试套件。 IE 如果用户说应该运行 10 个测试中的 5 个,那么将运行这 5 个测试,仅此而已。有没有办法获取包含测试我的案例的类列表并只运行那些? 我尝试像这样使用 for 循环
for (Class a: classes)
JUnitCore.runClasses(a);
但我得到了这个错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
at TestRunner.main(TestRunner.java:56)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
【问题讨论】:
-
我唯一能想到的就是添加一个增强的 for 循环,该循环遍历类,如 for (Class a : classes) JUnitCore.runClasses(a);但这只是给我一个 classnotfound 异常
-
我想,这就是Parameterized test runner 的用途。
-
@ArtjomB。不,我不这么认为。
-
为什么只运行那些测试?该特定子集有什么特别之处吗?相同的子集是否总是被分组在一起?
标签: java unit-testing testing junit junit4