我正在使用Maven来构建我的项目.我目前将测试拆分为不同的层次结构:
单元测试 - > src/test/java/**/*Test.java
集成测试 - > src/test-integration/java/**/*Test.java
外部测试 - > src/test-external/java/**/*Test.java
这是我的maven-surefire-plugin
部分:
org.apache.maven.plugins maven-surefire-plugin ${maven-surefire-plugin.version} src/test/java/**/*Test.java
上面的指令不起作用.我运行时没有执行任何测试:mvn clean test
我试过**/*Test.java
并运行所有测试 - 单元,集成和外部.但是,对于默认测试套件,我只想运行单元测试.
我怎样才能在Maven中完成这项工作?
参考:
org.apache.maven.plugins maven-surefire-plugin 2.14.1
msenni.. 8
您应该将您的单元和集成测试用例分开.单元测试可以使用Surefire插件运行,并且有一个单独的插件,名为Failsafe,用于运行集成测试.
默认情况下,Surefire插件会运行名称结尾的所有测试文件*Test.java
.诀窍是用不同的名称命名集成测试文件*IT.java
.Failsafe插件会将它们识别为集成测试.
您可以在此答案中找到示例用法 - 如何运行Maven Integration测试
如果您遵循默认设置,例如将测试用例文件放在src/test/java
文件夹中并将测试文件命名为,则您也不必单独配置Surefire插件*Test.java
.
您应该将您的单元和集成测试用例分开.单元测试可以使用Surefire插件运行,并且有一个单独的插件,名为Failsafe,用于运行集成测试.
默认情况下,Surefire插件会运行名称结尾的所有测试文件*Test.java
.诀窍是用不同的名称命名集成测试文件*IT.java
.Failsafe插件会将它们识别为集成测试.
您可以在此答案中找到示例用法 - 如何运行Maven Integration测试
如果您遵循默认设置,例如将测试用例文件放在src/test/java
文件夹中并将测试文件命名为,则您也不必单独配置Surefire插件*Test.java
.
这是因为<include>
path相对于<testSourceDirectory>
默认值为${project.build.testSourceDirectory}
= src/test/java.试试这个
<include>**/*Test.java</include>