【问题标题】:Make OpenCover reports available in CruiseControl.NET使 OpenCover 报告在 CruiseControl.NET 中可用
【发布时间】:2011-11-09 19:23:00
【问题描述】:

我正在尝试将OpenCoverCruiseControl.NET 集成。此时我已经通过构建系统进行了修改,因此它可以在 OpenCover 下运行我的 nunit 测试。然后我从那些使用ReportGenerator 的人那里生成 Xml 和 Html 报告。

假设可以将 ReportGenerator 生成的报告集成到 CruiseControl.NET webapp 中,如何将两者集成?

NCover 有自己的NCoverReporting task 可以使用,但由于我没有运行 NCover,我无法将其输出与 OpenCover 生成的 XML 报告进行比较。

相关想法/问题:

  • OpenCover 默认会生成一个 XML 文件,但是那个 XML 文件可以被 cc.net 使用吗?
  • ReportGenerator 也生成 XML,它们是用于 cc.net 之类的吗?
  • cc.net 有一个合并日志的 File-Merge 发布者,但我还没有找到任何说明 cc.net 有用/使用哪些文件格式的文档。

【问题讨论】:

  • ReportGenerator 还可以生成 HTML 输出,这些文件(或 index.html)应该很容易链接。
  • 查看这篇博文palmmedia.de/Blog/2012/9/27/…获取教程。

标签: cruisecontrol.net code-coverage opencover reportgenerator


【解决方案1】:

我遇到了这个问题,我通过这些步骤解决了它,考虑到我使用的是 msbuild,所以这只有在你使用 msbuild 时才有效:

  1. 添加覆盖目标
  2. 将任务添加到您的 build.proj 以创建 OpenCoverage 输出 (OpenCoverReport.xml)
  3. 紧接着,添加一个用于创建摘要报告的任务,使用 报告生成器(报告类型:XML)。像这样:MSBuild Coverage Target Example
  4. 使用 Summary.xml 创建用于创建 HTML 输出的 XSL 转换,不用担心,我已经写过了:对于解析程序集级别覆盖率(在您的构建日志输出中),请使用以下内容:XSLT for an Assembly level coverage report 和解析类级别覆盖率(详细报告)使用以下内容:XSLT for a Class level coverage report
  5. 添加 buildReportBuildPlugin 和 xslReportBuildPlugin 以使用您的 dashboard.config 文件中以前的 XSLT 文件创建两个报告:Add this to the configuration
  6. 将覆盖率报告摘要 XML 文件合并到构建输出,在您的 ccnet.config 文件中:add this to your configuration

【讨论】:

  • 您是否可以在答案中发布您的整个配置(会更容易理解) - 我正在尝试按照您的步骤操作,但是(1)和(2)在没有示例的情况下有点神秘。 ..
  • 第 3 步中的链接也显示了第 1 步和第 2 步的结果。
  • 谢谢(后来也意识到了)。但由于某种原因,此处链接的 XSLT 不会为我产生任何结果。它们有用吗?
  • @Marcel Valdez Orozco - 你能澄清#6 中的文件来自哪里吗?
【解决方案2】:

通过 IIS 公开报告后,您可以在 ccnet.config 中使用 External Links

   <externalLinks>
     <externalLink name="Code Coverage"     url="http://cc.net/coverage" /> 
   </externalLinks>

【讨论】:

  • 似乎他可以使用 ReportGenerator 生成的覆盖率报告来做到这一点。由于从未使用过 CC,我无法拨打电话,感谢您的更新...来自我的 +1,欢迎来到 SO :)
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 2015-11-12
  • 2013-01-31
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多