有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Cobertura代码覆盖率结果不完整

我使用Cobertura进行代码覆盖率分析。如果我在Jenkins中运行构建,generated中的类包含在覆盖率结果中,但覆盖率为0%。如果我在我的工作区(Eclipse)中运行代码覆盖率,覆盖率会高得多。包com.my.package的覆盖范围正常。我错过了一些配置吗

我的项目结构如下:

- com
+- com.my
+-- com.my.package
+--- class1.java
+--- class2.java
- generated
+- classX.java
+- classY.java

POM文件中的我的cobertura配置:

        <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>

共 (1) 个答案

  1. # 1 楼答案

    生成的代码不应进行测试,也不应在代码覆盖率度量中使用。原因是您不应该测试生成代码的库

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

                <instrumentation>
                    <excludes>
                        <exclude>**/*Test.class</exclude>
                        <exclude>generated/*.class</exclude>
                    </excludes>
                </instrumentation>