0

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

我的项目结构如下:

- com
+- com.my
+-- com.my.package
+--- class1.java
+--- class2.java
- 生成
+- 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>
4

1 回答 1

1

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

我自己从未使用过 Cobertura,但您似乎应该添加如下内容:

            <instrumentation>
                <excludes>
                    <exclude>**/*Test.class</exclude>
                    <exclude>generated/*.class</exclude>
                </excludes>
            </instrumentation>
于 2011-06-24T13:01:42.727 回答