小编典典

如何让我的 Maven 集成测试运行

all

我有一个 maven2 多模块项目,在我的每个子模块中,我都有 JUnit
测试,分别命名为单元测试和集成测试Test.javaIntegration.java当我执行时:

mvn test

*Test.java执行子模块中的所有 JUnit 测试。当我执行

mvn test -Dtest=**/*Integration

没有任何Integration.java测试在子模块中执行。

这些对我来说似乎是完全相同的命令,但是带有 -Dtest= /Integration* 的命令不起作用,它显示在父级别运行的 0
个测试,没有任何测试


阅读 87

收藏
2022-07-17

共1个答案

小编典典

您可以设置 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>
2022-07-17