rat*_*hna 10 java code-coverage maven jenkins sonarqube
我从声纳rest api获得了单元测试覆盖百分比指标.
如果构建低于定义值,如何使构建失败?
ale*_*xbt 20
JaCoCo 提供该功能.
定义使用配置规则JaCoCo插件COVEREDRATIO的LINE和BRANCH:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>CLASS</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
</limits>
<excludes>
<exclude>com.xyz.ClassToExclude</exclude>
</excludes>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
支持的counter选项是:
我相信INSTRUCTION会允许你进行一般检查(例如,验证整个项目的覆盖率至少为0.80).
此示例要求整体指令覆盖率为80%,并且不得错过任何课程:
Run Code Online (Sandbox Code Playgroud)<rules> <rule implementation="org.jacoco.maven.RuleConfiguration"> <element>BUNDLE</element> <limits> <limit implementation="org.jacoco.report.check.Limit"> <counter>INSTRUCTION</counter> <value>COVEREDRATIO</value> <minimum>0.80</minimum> </limit> <limit implementation="org.jacoco.report.check.Limit"> <counter>CLASS</counter> <value>MISSEDCOUNT</value> <maximum>0</maximum> </limit> </limits> </rule> </rules>
如果覆盖范围不符合预期,则会失败,并显示以下消息:
[WARNING] Rule violated for class com.sampleapp.SpringConfiguration: lines covered ratio is 0.00, but expected minimum is 0.80
[WARNING] Rule violated for class com.sampleapp.Launcher: lines covered ratio is 0.33, but expected minimum is 0.80
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我设置了<exclude>com.xyz.ClassToExclude</exclude>.我想你会发现你需要添加许多排除.项目通常包含许多不可测试/测试的类(Spring配置,Java bean ......).您也可以使用正则表达式.
| 归档时间: |
|
| 查看次数: |
8854 次 |
| 最近记录: |