我想从命令行运行JUnit测试用例。 我该怎么做呢?
当前回答
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 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
正常方式
如果你不使用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
其他回答
实际上,你也可以让Junit测试一个可运行的Jar,并调用可运行的Jar为 java jar
或者,您可以在JunitCore类http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html中使用以下方法
运行(与请求,类类和Runner)或runClasses从您的java文件。
在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]
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 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
正常方式
如果你不使用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
确保JUnit.jar在类路径中,然后从控制台中调用命令行运行器
java org.junit.runner.JUnitCore[测试类名]
参考:junit FAQ
推荐文章
- 在IntelliJ 10.5中运行测试时,出现“NoSuchMethodError: org.hamcrest. matcher . descripbemismatch”
- 如何使用xargs复制名称中有空格和引号的文件?
- 使用Mockito测试抽象类
- 使用Moq模拟单元测试的异步方法
- 你的项目没有引用“. net framework,Version=v4.6.2”框架。在“TargetFrameworks”中添加对“.NETFramework,Version=v4.6.2”的引用
- 使用Moq模拟扩展方法
- 在单行命令行中执行多行语句
- 基于输入参数模拟python函数
- 查找名称包含字符串的所有文件
- 如何编写多行命令?
- 用于单元测试的NUnit vs. Visual Studio 2008测试项目
- 在使用信号时,你不能在'原子'块的末尾执行查询,但只能在单元测试期间执行
- 解析命令行参数的最佳方法?
- .NET核心单元测试-模拟IOptions<T>
- 复制粘贴在Bash上Ubuntu在Windows上