可以在Eclipse之外运行JUnit测试,使用org.junit.runner.JUnitCore类。 这个类提供了runClasses()方法,它允许运行一个或多个测试类。runClasses()方法返回类型是org.junit.runner.Result对象类型。 这个对象可以被用来收集关于测试信息。此外,如果有一个失败的测试,可以用org.junit.runner.notification.Failure对象保存失败测试的描述。
下面的步骤显示了如何在Eclipse之外(命令行下)运行测试。
用下面的代码创建一个新的Java类为JunitRunner.java:
JunitRunner.java
package com.yiibai.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class JunitRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(AssertionsTest.class); for (Failure fail : result.getFailures()) { System.out.println(fail.toString()); } if (result.wasSuccessful()) { System.out.println("All tests finished successfully..."); } } }
作为一个例子,我们选择运行AssertionsTest测试类。
- 打开命令提示符,然后往下移目录,找到两个类所在的目录。
- 编译测试类和运行类。
1 | C:Usersyiibaieclipse_workspaceJUnitGuide estcomyiibaijunit>javac -classpath "C:UsersyiibaiDownloadsjunit-4.11.jar";"C:UsersyiibaiDownloadshamcrest-core-1.3.jar"; AssertionsTest.java JunitRunner.java |
注:这里指定包含相关 junit 的相关 jar 包。
- 现在运行 JunitRunner.
1 | C:Usersyiibaieclipse_workspaceJUnitGuide estcomyiibaijunit>java -classpath "C:UsersyiibaiDownloadsjunit-4.11.jar";"C:UsersyiibaiDownloadshamcrest-core-1.3.jar"; JunitRunner |
这里是结果输出:
All tests finished successfully...