为啥 Cobertura 在通过 Eclipse 插件运行时报告 0% 覆盖率?

Posted

技术标签:

【中文标题】为啥 Cobertura 在通过 Eclipse 插件运行时报告 0% 覆盖率?【英文标题】:Why does Cobertura report 0% coverage when run through the Eclipse plugin?为什么 Cobertura 在通过 Eclipse 插件运行时报告 0% 覆盖率? 【发布时间】:2013-10-06 14:16:27 【问题描述】:

(有很多这样的问题,但我能找到的所有问题都与 Maven 有关。在你建议这个问题是重复的之前,请理解这与 Maven 没有任何关系。)

我在 Eclipse 中使用Cobertura 来确定我的 JUnit 测试覆盖的代码百分比。我的所有 99 个单元测试在 Cobertura 内部和外部都成功运行,但 Cobertura 报告说它们已经覆盖了我的代码的 0%。

我:

我正在通过 Eclipse 插件运行 Cobertura 我正在使用 Java 6,特别是 Ubuntu 上的 OpenJDK-AMD64 确保单元测试确实涵盖了我的代码的某些部分 已确保 Cobertura 在我的所有 src 文件夹上运行我的所有测试文件夹 已尝试清理和重建

为什么 Cobertura 报告为 0%?

【问题讨论】:

我还没有解决这个问题 - 但我通过将报告粘贴到 Ant 文件中解决了这个问题...... 通过 Maven 的cobertura:cobertura 目标运行它是否有效? @Joe 我没有使用 Maven,但因为它可以与 Ant 一起使用,所以我假设是这样。 【参考方案1】:

我发现这对我来说是个问题,因为我正在编译没有行号的源文件。如果这是你的问题,你会看到

[cobertura-instrument] WARN visitEnd, No line number information found for class com.x.y.z.A.
Perhaps you need to compile with debug=true?

要解决此问题,请将debug="true" debuglevel="vars,lines,source" 添加到您的javac 命令中。

另见:

http://meera-subbarao.blogspot.co.uk/2008/07/cobertura-instrument-warn-visitend-no.html

How to remove specific Cobertura warning?

【讨论】:

以上是关于为啥 Cobertura 在通过 Eclipse 插件运行时报告 0% 覆盖率?的主要内容,如果未能解决你的问题,请参考以下文章

cobertura代码测试覆盖率使用案例

当 cobertura 测试在 maven-cobertura-plugin 中运行时如何配置?

Glassfish 嵌入式 + maven cobertura 插件

为啥在eclipse中这个程序无法编译通过?

使用 maven 运行 junits 和 cobertura

使用 Cobertura 从代码覆盖中排除方法