jacoco.exec的覆盖范围不会除去排除文件的覆盖范围

时间:2019-08-22 00:04:08

标签: java spring-boot code-coverage jacoco jacoco-maven-plugin

我在jacoco maven插件中添加了排除文件的配置,但是jacoco.exec的覆盖范围并未反映出排除文件

我已经尝试在级别上添加排除项:覆盖率检查,覆盖率报告,集成后测试以及插件级别。 “排除”选项仅适用于index.html文件,但jacoco.exec的适用范围并不反映要排除文件。排除示例之一:

                        <id>coverage-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <!--<dataFile>target/jacoco.exec</dataFile>-->
                            <rules>
                                <rule implementation="org.jacoco.maven.RuleConfiguration">
                                    <!--<element>CLASS</element>-->
                                    <excludes>
                                        <exclude>**/*/com/xyz/*.class</exclude>
</excludes>
</rule>
                            </rules>
                        </configuration>
                    </execution>
                </executions>

index.html中的行覆盖率达到64%,但jacoco.exec显示的覆盖率仅为23%

1 个答案:

答案 0 :(得分:0)

请仔细阅读https://www.jacoco.org/jacoco/trunk/doc/check-mojo.html#rules

excludes内的

rule指定element

的名称

所以在注释掉的情况下

<!--<element>CLASS</element>-->

element的默认值为BUNDLE,因此排除项应指定BUNDLE s的名称

如果是

<element>CLASS</element>
  

<exclude>**/*/com/xyz/*.class</exclude>

不起作用,因为excludes与文件名无关-它们与类名有关,而/则具有.而没有{{1} }。