我需要创建一个JUnit测试套件,它根据用户提供的输入文件运行测试。 I.E如果用户说应该运行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
答案 0 :(得分:0)
有两种选择。
它允许你标记"通过标签测试和构建测试套件。 你可以查看文档: https://github.com/junit-team/junit/wiki/Categories
优点:
缺点:
编写您的测试规则并在此规则中忽略(通过抛出AssumptionViolatedException)所有不在列表中的测试。 文档在这里:
https://github.com/junit-team/junit/wiki/Rules
查看TestWatcher规则,它包含有关传递给其方法的Description对象中的测试类名称和方法名称的信息。
优点:
缺点: