对于JUnit 5.x,做法如下:
java -jar junit-platform-console-standalone-<version>.jar <Options>
在 https://dev59.com/k1QK5IYBdhLWcg3wJMq0#52373592 上可以找到简要摘要,完整细节请参见 https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
对于 JUnit 4.X,确实如下:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
但是如果您使用的是 JUnit 3.X,请注意类名是不同的:
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
你可能需要将更多JAR文件或包含类文件的目录添加到类路径中,并使用分号(Windows)或冒号(UNIX / Linux)进行分隔。这取决于你的环境。
编辑:我已经添加了当前目录作为示例。这取决于你的环境以及如何构建应用程序(可以是bin/、build/甚至my_application.jar等)。请注意,Java 6+支持类路径中的通配符,你可以这样做:
java -cp lib/*.jar:/usr/share/java/junit.jar ...
编写测试代码! :-)
Maven的方式
如果您使用Maven,您可以运行以下命令来运行所有测试用例:
mvn clean test
或者你可以按照以下方式运行特定的测试
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
如果您想在控制台中查看堆栈跟踪(如果有的话),而不是在目标\surefire-reports文件夹中的报告文件,请将用户属性surefire.useFile设置为false。例如:
如果您希望在控制台上查看堆栈跟踪(如果有的话),而不是在目标\surefire-reports文件夹中的报告文件,请将用户属性surefire.useFile设置为false。例如:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
Gradle方式
如果您使用Gradle,您可以运行以下命令来运行所有测试用例:
gradle test
或者你可以按照以下方式运行特定的测试
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
如果你需要更多信息,你可以考虑使用选项,例如--stacktrace、--info或--debug。gradle test --info
如果您想查看整体测试结果,可以在浏览器中打开报告,例如(在Ubuntu中使用Google Chrome打开):
google-chrome build/reports/tests/index.html
蚂蚁方式
一旦您设置好Ant构建文件build.xml,就可以从命令行运行JUnit测试用例,如下所示:
ant -f build.xml <Your JUnit test target name>
您可以点击下面的链接了解如何在Ant构建文件中配置JUnit测试:
https://ant.apache.org/manual/Tasks/junit.html普通方法
如果您不使用Maven、Gradle或Ant,您可以按照以下方法操作:
首先,您需要编译测试用例。例如(在Linux中):
javac -d /absolute/path/for/compiled/classes -cp /absolute/path/to/junit-4.12.jar /absolute/path/to/TestClassName.java
然后运行您的测试用例。例如:
java -cp /absolute/path/for/compiled/classes:/absolute/path/to/junit-4.12.jar:/absolute/path/to/hamcrest-core-1.3.jar org.junit.runner.JUnitCore your.package.TestClassName
@lzap 给出的答案是一个很好的解决方案。但是我想补充一点,你应该将 "." 添加到类路径中,这样你的当前目录就不会被遗漏,导致你自己编写的类也被遗漏。在某些平台上,我就遇到过这种情况。因此,针对 JUnit 4.x 的更新版本应该是:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
在JUnit 4.12中,以下内容对我无效:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
显然,从JUnit 4.11版本开始,您还应该在类路径中包括hamcrest-core.jar
:
java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore [test class name]
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [测试类名]
- khatchad在 Windows 系统中,可以使用以下命令行语句来执行 JUnit(版本 4+)测试:
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[无需 .class 扩展名的测试类名]
例如:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
依此类推,如果有多个测试类。
-cp 代表 class path,点号(.)表示现有的类路径,分号(;)将额外给定的 jar 文件附加到类路径上。因此,在上面的示例中,junit-4.8.2 现在可用于类路径,以执行我们使用 JUnitCore 类来执行测试类。
以上命令行语句帮助您在命令提示符(即 MSDos)下执行 junit(版本 4+)测试。
注意:JUnitCore 是执行 junit 测试的门面,此门面已包含在 4+ 版本的 junit 中。
mvn clean test -pl :my-module -Dtest=CustomTest
使用以下命令仅运行测试类 CustomTest 中的一个测试方法 myMethod:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
或者您可以在 JunitCore 类中使用以下方法 http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
从您的 Java 文件中运行 (使用 Request、Class classes 和 Runner) 或者运行类。