将Visual Studio 2012集成到Cruise Control.NET中

问题描述:

我试图轻松地将Visual Studio 2012中的单元测试结果和代码覆盖率报告显示到CruiseControl.NET构建报告中。这些作品如下:将Visual Studio 2012集成到Cruise Control.NET中

  • 的MSBuild - 建设项目
  • vstest.console.exe - 通过命令行来执行Visual Studio的单元测试和代码覆盖工具
  • 定制控制台应用程序转换覆盖向XML报告

我的问题是如何控制vstest.console.exe的输出名称。无论如何我无法控制这一点。我现在唯一的解决方案是编写一些自定义脚本来查找覆盖文件和TRX文件并重命名为已知值。然后巡航控制工具可以正确地找到文件。

任何帮助,将不胜感激。谢谢,

看看这个帖子 http://rubenwillems.blogspot.be/2011/09/setting-up-ccnet-in-combination-with.html

它显示所需的步骤。 看那里的第4步和第5步,这些封面单元测试和覆盖。

+0

这是针对Visual Studio 2010的。在Visual Studio 2012中,他们有vstest.console.exe。这不允许你指定结果文件。这就是我试图确保我不会错过这个新工具的东西。 –

+0

虽然这对于VS2010来说是一篇很棒的文章:-P –

+0

我忽略了这个版本,对不起。目前我没有VS2012,但msdn上的文档声称导出仍然存在。 http://msdn.microsoft.com/en-us/library/ms182489%28v=vs.110%29.aspx /resultsfile:testResults.trx – Williams

命令行看起来非常有限:

http://msdn.microsoft.com/en-us/library/vstudio/jj155796.aspx

“的TRX记录器不支持任何参数(不像TFS出版商记录器)。”

来自:

Specifying results filename for vstest.console.exe

这里是一个通用尖端。

想到CC.NET的一种方式是这样的:它是一个很大的花哨的“Msbuild.Exe”执行器。

所以,如果你可以用msbuild(.proj)文件写出你的逻辑,你可以让CC.NET调用它。

1. CC.NET calls a source-control retrieve task. 
2. In that retrieve, there is a .proj file. 
3. You get CC.NET to call "msbuild.exe MySolutionBuild.proj" 
4. Have the .proj file run Unit-Tests, create xml, create artifacts (.zip(s) or .msi(s), etc) 
5. After the build, have CC.NET pull in the results (usually xml with File-Merge) and have CC.NET send out emails (publishers). 

如果你这样做,如果你去到TFS(或詹金斯或其他),你会尽量减少过渡的努力。

如果你非常依赖CC.NET专有命令,你可以使它工作,但它很难维护恕我直言。

+1

我之前已经扩展了MSBuild来做各种有趣的事情,它很强大并且能够扩展它,我可能会做一些这样的事情。现在,我正在执行以下操作: 1.调用清理批处理文件以删除覆盖/测试报告 2.使用MSBuild执行构建 3.调用该工具执行单元测试和覆盖 4.调用自定义工具找到并重新命名覆盖/测试报告 5.调用自定义工具生成覆盖报告到XML 6.使用ReportGenerator(从codeplex)获取XML并将其生成HTML –

+0

因此,我最新的方法与您的方法非常相似。我只需要尝试打包它,这样就可以了e到其他系统(如您所述)。 –