我有一个 maven2 多模块项目,在我的每个子模块中,我都有 JUnit 测试,分别命名为单元测试和集成测试Test.java。Integration.java当我执行时:
Test.java
Integration.java
mvn test
*Test.java执行子模块中的所有 JUnit 测试。当我执行
*Test.java
mvn test -Dtest=**/*Integration
没有任何Integration.java测试在子模块中执行。
这些对我来说似乎是完全相同的命令,但是带有 -Dtest= /Integration* 的命令不起作用,它显示在父级别运行的 0 个测试,没有任何测试
您可以设置 Maven 的 Surefire 以分别运行单元测试和集成测试。在标准单元测试阶段,您运行与集成测试模式不匹配的所有内容。然后 创建 仅运行集成测试的第二个测试阶段。
这是一个例子:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <excludes> <exclude>**/*IntegrationTest.java</exclude> </excludes> </configuration> <executions> <execution> <id>integration-test</id> <goals> <goal>test</goal> </goals> <phase>integration-test</phase> <configuration> <excludes> <exclude>none</exclude> </excludes> <includes> <include>**/*IntegrationTest.java</include> </includes> </configuration> </execution> </executions> </plugin>