一尘不染

Cobertura代码覆盖率结果不完整

jenkins

我正在使用Cobertura进行代码覆盖率分析。如果我在詹金斯(Jenkins)中运行构建,generated则覆盖范围结果中将包含其中的类,但覆盖率为
0% 。如果我在工作区(Eclipse)中运行代码覆盖率,则覆盖率会更高。包装的覆盖范围com.my.package还可以。我错过了一些配置吗?

我的项目结构如下:

-com
+-com.my
+-com.my.package
+ --- class1.java
+ --- class2.java
-产生
+-classX.java
+-classY.java

我的cobertura配置在POM文件中:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <formats>
                    <format>xml</format>
                </formats>
                <check>
                    <branchRate>0</branchRate>
                    <lineRate>0</lineRate>
                    <haltOnFailure>false</haltOnFailure>
                    <totalBranchRate>0</totalBranchRate>
                    <totalLineRate>0</totalLineRate>
                    <packageLineRate>0</packageLineRate>
                    <packageBranchRate>0</packageBranchRate>
                </check>
                <instrumentation>
                    <excludes>
                        <exclude>**/*Test.class</exclude>
                    </excludes>
                </instrumentation>
            </configuration>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>cobertura</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

阅读 274

收藏
2020-07-25

共1个答案

一尘不染

生成的代码不应进行测试,并且不应在代码覆盖率指标中使用。原因是您不应该测试正在生成代码的库。

我本人从未使用过Cobertura,但似乎您应该添加以下内容:

            <instrumentation>
                <excludes>
                    <exclude>**/*Test.class</exclude>
                    <exclude>generated/*.class</exclude>
                </excludes>
            </instrumentation>
2020-07-25