我想在我们的夜间构建过程中包含一些代码覆盖率。我们正在使用 CruiseControl、Ant 和 Buckminster。Buckminster 负责从多个存储库进行结帐,以及产品的 PDE 构建和打包。

有没有人有将代码覆盖率集成到 RCP 无头构建中的经验?

我一直在关注 Cobertura、EMMA/EclEMMA、DbUnit,但我非常有兴趣了解这些或任何其他工具的任何经验。

有帮助吗?

解决方案

Cobertura 似乎能够为我们完成这项工作。

一旦单元测试运行(这本身就是一个问题),我就能够:

  • 将捆绑包作为独立的 jar 进行检测。
  • 使用 cobertura 在父类加载器类路径上重新运行单元测试。

这里的技巧是使用 osgi.parentClassloader=app 在用于运行单元测试的 config.ini 文件中。

  • ext == Java 扩展
  • boot == 启动类加载器(默认)
  • fwk ==框架?
  • app == 应用程序,即就像普通应用程序一样,在命令行上指定类路径。

检测的代码需要运行时访问 cobertura jar,因此最后一步是势在必行的。

其他提示

EclEmma现在有一个名为<!>的额外组件; EclEmma Equinox Runtime <!>;为任何OSGi / Equinox应用程序提供无头代码覆盖率分析:

http://www.eclemma.org/devdoc/headless.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top