为了微调哪些测试在哪些时间以及在哪些环境中运行,我们为maven-surefire-plugin设置了几个执行。我们将默认配置设置为跳过所有测试,然后为我们想要的执行启用它们。这本身对我们很有用。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>unit-tests</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*Tests.java</include>
</includes>
<excludes>
<exclude>**/*IntegrationTests.java</exclude>
</excludes>
</configuration>
<execution>
<execution>
<id>integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*IntegrationTests.java</include>
</includes>
</configuration>
<execution>
</executions>
</plugin>
当我将maven-cobertura-plugin添加到混音中时,我遇到了问题。 cobertura目标运行,并成功地完成我的课程。但是,没有测试运行。我假设这是因为cobertura运行的测试执行是跳过的。但是,我找不到如何指定为此执行设置的阶段和目标。当我打开所有测试时,输出似乎表明它们仍然在这些单元测试和集成测试阶段/目标中运行。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.4</version>
<configuration>
<formats>
<format>xml</format>
<format>html</format>
</formats>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>cobertura</goal>
</goals>
</execution>
</executions>
</plugin>
我如何指定一个surefire执行,以便cobertura将针对已检测的类运行它?
答案 0 :(得分:2)
您cobertura:cobertura
cobertura
(不是default
生命周期)中运行test
因此,相应地连接它应该自动导致仪器和测试。