maven 命令行执行 junit 单元测试
apache-maven-3.9.7
JUnit 4 或 JUnit 5
进入到项目的根目录:
如 cd D:\IntelliJ-IdeaProjects\maven-demo
执行指定的测试用例(单个)的命令:
mvn test -Dtest=包名.测试用例名
或
mvn test -Dtest="包名.测试用例名"
或
mvn test "-Dtest=包名.测试用例名"
如
mvn test -Dtest=com.joyupx.model.excel.ExcelTest
或先清理再执行单元测试用例:
mvn clean test -Dtest=com.joyupx.model.excel.ExcelTest
在 PowerShell 中的执行命令为:
mvn test -Dtest=测试用例名
或
mvn test -Dtest='包名.测试用例名'
或
mvn test -Dtest="包名.测试用例名"
或
mvn test '-Dtest=包名.测试用例名'
或
mvn test "-Dtest=包名.测试用例名"
即不含包名,如果带着包名且没有英文状态下的单引号或双引号则抛出如下错误:
[ERROR] Unknown lifecycle phase ".com.joyupx.model.excel.ExcelDoTest ". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: pre-clean, clean, post-clean, validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-site, site, post-site, site-deploy. -> [Help 1]
原因是在 PowerShell 中点(.)是特殊字符,需要通过引号将其转义为原生含义。
正确的命令为:
mvn test -Dtest=ExcelTest
或(先清理再执行测试用例)
mvn clean test -Dtest=ExcelTest
或
mvn clean test -Dtest='com.joyupx.model.excel.ExcelTest '
或
mvn clean test -Dtest="com.joyupx.model.excel.ExcelTest "
一次性执行指定包下的全部测试用例文件的命令:
mvn clean test -Dtest="包名.*Test"
如:
mvn clean test -Dtest="com.joyupx.model.excel..*Test"
推荐使用英文状态的下的双引号将参数值括起来,这样即可以在 CMD 中运行,也可以在 PowerShell 中执行,需要注意是 CMD 不支持英文状态下的单引号。