如何使用JUnit动态动态运行不同测试方法的子集?
目标是拥有一个可以从命令行使用参数调用的jar文件(例如TestClass1#testMethod1,TestClass1#testMethod2,TestClass2#testMethod1
)。使用以下命令可以轻松地运行单个测试方法:
Request request = Request.method('CLASSNAME', 'METHODNAME');
new JUnitCore().run(request);
但是如何在运行中添加更多测试方法?理想情况下,这不仅会为每个方法重复JUnitCore().run()
,而是将所有已定义的方法组合到单个运行中。怎么办呢?
答案 0 :(得分:1)
我认为您可以过滤要运行的类/方法:
Request request = Request.classes(...
Filter filter = new Filter() {
@Override
public boolean shouldRun(Description description) {
... get class and method and decide...
}
@Override
public String describe() {
return null;
}
};
request.filterWith(filter);
答案 1 :(得分:0)
也许你可以使用runClasses(java.lang.Class<?>... classes)
(运行类中包含的测试)。
http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html