Cobertura 代码覆盖率结果不完整
我正在使用 Cobertura 进行代码覆盖率分析。如果我在 Jenkins 中运行构建,生成
中的类将包含在覆盖率结果中,但覆盖率为 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>
I am using Cobertura for code coverage analysis. If I run a build in Jenkins the classes in generated
are contained in the coverage result but the coverage is at 0%. If I run code coverage in my workspace (Eclipse) the coverage is much higher. The coverage for the package com.my.package
is ok. Have I missed some configuration?
My projects structure is as following:
- com +- com.my +-- com.my.package +--- class1.java +--- class2.java - generated +- classX.java +- classY.java
My cobertura configuration in the POM-file:
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
生成的代码不应进行测试,也不应在代码覆盖率指标中使用。原因是您不应该测试生成代码的库。
我自己从未使用过 Cobertura,但似乎你应该添加这样的内容:
Generated code should not be tested and should not be used in code coverage metrics. The reason is that you should not be testing the library that is generating the code.
I've never used Cobertura myself, but it seems that you should add something like this: