【发布时间】:2018-04-19 20:30:41
【问题描述】:
我需要在不同的阶段运行我的测试组(首先运行 A 组,然后运行 B 组,就像您刚刚开始运行测试一样)
所以我决定结合使用 maven-failsafe-plugin 和 junit 测试类别
我有以下配置:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skip>${skipTests}</skip>
<includes>
<include>**/*IT.java</include>
</includes>
<groups>my.categories.IntegrationTest</groups>
<excludedGroups>my.categories.ProfiledIntegrationTest, my.categories.MvcTest, my.categories.ExchangeRateTest</excludedGroups>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skip>${skipTests}</skip>
<includes>
<include>**/*IT.java</include>
</includes>
<groups>my.categories.ProfiledIntegrationTest</groups>
<excludedGroups>my.categories.IntegrationTest, my.categories.MvcTest, my.categories.ExchangeRateTest</excludedGroups>
</configuration>
<executions>
<execution>
<id>profiled-integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skip>${skipTests}</skip>
<includes>
<include>**/*IT.java</include>
</includes>
<groups>my.categories.MvcTest</groups>
<excludedGroups>my.categories.ProfiledIntegrationTest, my.categories.IntegrationTest, my.categories.ExchangeRateTest</excludedGroups>
</configuration>
<executions>
<execution>
<id>mvc-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skip>${skipTests}</skip>
<includes>
<include>**/*IT.java</include>
</includes>
<groups>my.categories.ExchangeRateTest</groups>
<excludedGroups>my.categories.MvcTest, my.categories.ProfiledIntegrationTest, my.categories.IntegrationTest</excludedGroups>
</configuration>
<executions>
<execution>
<id>exchange-rate-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
</plugin>
</plugins>
然而 maven 运行我的单元测试 (surefire),然后只运行 maven failsafe 插件的最后一个实例(它忽略了前 3 个)
请问我怎样才能让它也运行它们?
【问题讨论】:
-
您不能多次定义一个插件。不过,您可以有单独的执行,但我不确定您是否可以将它们绑定到同一阶段。实际上,我怀疑尝试多次启动故障保护插件是否是个好主意。