3 回答
TA贡献1806条经验 获得超5个赞
您可以非常轻松地创建自定义的准系统JUnit运行器。这是一种将以以下形式运行单个测试方法的方法com.package.TestClass#methodName:
import org.junit.runner.JUnitCore;
import org.junit.runner.Request;
import org.junit.runner.Result;
public class SingleJUnitTestRunner {
public static void main(String... args) throws ClassNotFoundException {
String[] classAndMethod = args[0].split("#");
Request request = Request.method(Class.forName(classAndMethod[0]),
classAndMethod[1]);
Result result = new JUnitCore().run(request);
System.exit(result.wasSuccessful() ? 0 : 1);
}
}
您可以这样调用它:
> java -cp path/to/testclasses:path/to/junit-4.8.2.jar SingleJUnitTestRunner
com.mycompany.product.MyTest#testB
快速浏览JUnit源代码后,我得出了与您相同的结论,即JUnit本身不支持此功能。这对我来说从来都不是问题,因为所有IDE都具有自定义的JUnit集成,这些集成使您可以在光标下运行测试方法以及其他操作。我从来没有直接从命令行运行JUnit测试。我总是让IDE或构建工具(Ant,Maven)来照顾它。特别是因为默认的CLI入口点(JUnitCore)不会在测试失败时产生非零退出代码以外的任何结果输出。
注意:对于> = 4.9的JUnit版本,您需要在类路径中包含hamcrest库
添加回答
举报