如果新代码低于覆盖率阈值,我怎样才能使构建失败?

时间:2017-11-01 20:55:26

标签: java sonarqube automated-tests code-coverage jacoco

是否有任何Java测试框架(最好是Jacoco和/或Sonar)允许代码覆盖率较差的团队原谅现有代码库,但需要新代码超过阈值,(直到他们可以获得所有旧代码涵盖!)

2 个答案:

答案 0 :(得分:1)

您可以将构建插件添加到pom中。这是进行至少80%的线路覆盖率检查。有关更多信息,请参见Jacoco doc

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.0</version>
            <executions>
                <execution>
                    <id>default-prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>jacoco-site</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
                <execution>
                    <id>jacoco-check</id>
                    <phase>test</phase>
                    <goals>
                        <goal>check</goal>
                    </goals>
                    <configuration>
                        <rules>
                            <rule>
                                <element>BUNDLE</element>
                                <limits>
                                    <limit>
                                        <counter>LINE</counter>
                                        <value>COVEREDRATIO</value>
                                        <minimum>0.80</minimum>
                                    </limit>
                                </limits>
                            </rule>
                        </rules>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

答案 1 :(得分:0)

我希望您可以使用Sonar Quality Gates执行此操作并将其与CI服务器集成。在Jenkins中,您可能想尝试Quality Gates Plugin