【问题标题】:Getting test coverage results with Cobertura使用 Cobertura 获取测试覆盖率结果
【发布时间】:2014-06-06 01:07:03
【问题描述】:

我正在使用来自 http://cobertura.github.io/cobertura/ 的 Cobertura 2.3.0 来分析我的项目的测试覆盖率,我得到了一个

Error: Could not find or load main class net.sourceforge.cobertura.instrument.Main

尝试从命令行执行 cobertura-instrument.bat 时。我查看了这个批处理文件,它试图从 %COBERTURA_HOME%/lib 文件夹中加载几个不存在的 JAR。我已经手动下载了这些 JAR,但遇到了其他奇怪的错误。

java.lang.IncompatibleClassChangeError: class net.sourceforge.cobertura.instrument.pass1.DetectIgnoredCodeClassVisitor has interface org.objectweb.asm.ClassVisitor as super class

这个版本是否有可能被错误地更新了?我看不出有任何其他方法可以使这项工作。此外,有没有人知道一个有效的测试覆盖实用程序,最好是一个工作的不同版本的 Cobertura?

我尝试过 Nounit 和其他几个,但没有得到我知道 Cobertura 可以产生的清洁输出类型。

【问题讨论】:

  • 您可以尝试通过转到cobertura.ci.cloudbees.com/job/Cobertura 下载最新版本的cobertura 吗?
  • @Steve 感谢您的回复。我不熟悉詹金斯。我该如何从这个网站下载?如果它是Source,则构建?谢谢!
  • 在“最后成功的工件”下方有一个可用下载列表。您可能需要获取 tar.gz、zip 或 SNAPSHOT.jar,具体取决于您当前的设置。
  • @Steve 感谢您的帮助。这次我采用了不同的解决方案。不过,我很感激这些回复。

标签: java testing junit cobertura


【解决方案1】:

回答我自己的问题,希望它可以帮助别人。

在撰写本文时,Cobertura 存在一个已知错误,在某些情况下会抛出 ClassNotFoundException。请参阅以下问题跟踪页面:https://github.com/cobertura/cobertura/issues/74#issuecomment-41383903

目前,我已经使用 EclEmma Eclipse 插件用于 EMMA 来覆盖我的测试代码,并以我想要的方式获得了不错的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2014-09-12
    • 1970-01-01
    • 2014-11-18
    • 2016-07-02
    • 1970-01-01
    相关资源
    最近更新 更多