如果我在<reporting>
中设置pom
部分,如下所示,我只收到了万无一失的报告,而pitest报告因为无法找到任何输入而失败。
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.19.1</version>
</plugin>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.1.10</version>
<configuration>
<targetClasses>
<param>pricingengine.*</param>
</targetClasses>
<targetTests>
<param>pricingengine.*</param>
</targetTests>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
要获取pitest
报告的输入以便输出到网站报告,我需要先执行此操作:
mvn compile test-compile org.pitest:pitest-maven:mutationCoverage
我是否必须将<build>
部分中的每一个设置为executions
绑定到pre-site
阶段的插件才能实现此目的?或者是否有一个更简单的解决方案与另一个我不知道的插件?
答案 0 :(得分:1)
然而,maven-surefire-report-plugin表明它会调用默认生命周期的test
目标。最糟糕的插件并不是。所以是的,您必须将pitest-maven插件添加到构建部分并将其绑定到生命周期阶段,即pre-site
。我不建议为此目的使用站点生命周期,因为它不适用于长时间运行的分析任务,但这取决于您。
所以构建顺序是:
我建议使用个人资料,以便不会在每个版本上运行变异测试,您可以在需要时激活它(例如mvn site-P pit
)
<profile>
<id>pit</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<configuration>
<targetClasses>
<param>pricingengine.*</param>
</targetClasses>
<targetTests>
<param>pricingengine.*</param>
</targetTests>
</configuration>
<executions>
<execution>
<goals>
<goal>mutationCoverage</goal>
</goals>
<phase>pre-site</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>