确保JUnit.jar在类路径中,然后从控制台中调用命令行运行器
java org.junit.runner.JUnitCore[测试类名]
参考:junit常见问题解答
对于JUnit 5.倍,它是:
java -jar junit-platform-console-standalone-<version>.jar <Options>
在https://stackoverflow.com/a/52373592/1431016和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+确实支持类路径中的glob,你可以这样做:
java -cp lib/*.jar:/usr/share/java/junit.jar ...
希望能有所帮助。编写测试!: -)
@lzap给出的答案是一个很好的解决方案。然而,我想补充的是,你应该补充。到类路径,这样您的当前目录就不会被遗漏,从而导致您自己的类被遗漏。我在某些平台上就遇到过这种情况。所以JUnit 4的更新版本。X是:
就我个人而言,我会使用Maven的JUnit运行器来实现这一点。
在windows中是这样的
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass[没有.class扩展名的测试类名]
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
- cp代表类路径,点(.)表示现有的类路径,而分号(;)将额外的给定jar追加到类路径中,如上面的例子所示,junit-4.8.2现在可以在类路径中执行JUnitCore类,这里我们用它来执行测试类。
上面的命令行语句帮助您从命令提示符(i-e MSDos)执行junit(版本4+)测试。
注意:JUnitCore是一个用于执行junit测试的facade,这个facade包含在junit的4+版本中。
如果你的项目是基于maven的,你可以使用下面的命令从属于模块'my-module'的测试类CustomTest中运行所有的测试方法:
mvn clean test -pl :my-module -Dtest=CustomTest
或者使用next命令只从测试类CustomTest中运行一个测试方法myMethod:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
你也可以在JunitCore类http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html中使用以下方法
运行(与请求,类类和Runner)或runClasses从您的java文件。
在JUnit 4.12中,以下内容不适合我:
显然,从JUnit 4.11开始,你还应该在你的类路径中包含hamcrest-core.jar:
hamcrest-core.jar
java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore [test class name]
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。例如:
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。
例如,当你使用信息日志级别——info运行Gradle时,它会在每个测试运行时显示结果。如果有任何异常,它将向您显示堆栈跟踪,指出问题所在。
gradle test --info
如果你想看到整体测试结果,你可以在浏览器中打开报告,例如(在Ubuntu中使用谷歌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 < / p >
正常方式
如果你不使用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