我正在使用Cobertura进行代码覆盖率分析。如果我在詹金斯(Jenkins)中运行构建,generated则覆盖范围结果中将包含其中的类,但覆盖率为 0% 。如果我在工作区(Eclipse)中运行代码覆盖率,则覆盖率会更高。包装的覆盖范围com.my.package还可以。我错过了一些配置吗?
generated
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>
生成的代码不应进行测试,并且不应在代码覆盖率指标中使用。原因是您不应该测试正在生成代码的库。
我本人从未使用过Cobertura,但似乎您应该添加以下内容:
<instrumentation> <excludes> <exclude>**/*Test.class</exclude> <exclude>generated/*.class</exclude> </excludes> </instrumentation>