我的 pom.xml 中有这个插件代码。如果我删除此插件,那么 Maven 将不会运行两次单元测试。我只是想知道这个插件的哪一部分使单元测试运行两次。
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-clover2-plugin</artifactId>
<version>3.0.4</version>
<configuration>
<licenseLocation>/location/to/clover.license</licenseLocation>
<generateXml>true</generateXml>
<generateHtml>true</generateHtml>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>instrument</goal>
</goals>
</execution>
<execution>
<id>main</id>
<phase>verify</phase>
<goals>
<goal>instrument</goal>
<goal>aggregate</goal>
<goal>clover</goal>
</goals>
</execution>
<execution>
<id>site</id>
<phase>pre-site</phase>
<goals>
<goal>instrument</goal>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
最佳答案
三叶草插件fork一个生命周期直到test
阶段使用检测的类路径。
您的标准生命周期将运行测试(通常在 test
阶段使用surefire,但在该阶段可能会有多次执行或其他测试插件调用测试)
然后三叶草出现并要求他们再次运行。
现在是我的标准警告:
如果您只在打开覆盖率的情况下运行测试用例,则不能相信 100% 通过率,因为覆盖率可以掩盖错误
相反,如果您从未在开启覆盖的情况下运行,则 JVM 架构中的任何更改都会突出显示您不知道的新错误。
-server
时显示全面优化热路径 “斯蒂芬的黄金法则:Just run the damn tests twice”
关于Maven 使用三叶草插件运行两次单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15795840/