Cobertura代码覆盖率结果不完整

时间:2011-06-24 12:27:28

标签: java hudson jenkins cobertura

我正在使用Cobertura进行代码覆盖率分析。如果我在Jenkins中运行构建,则generated中的类包含在coverage结果中,但覆盖率为 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 个答案:

答案 0 :(得分:1)

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

我自己从未使用过Cobertura,但似乎你应该添加这样的东西:

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