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

时间:2013-10-23 02:30:42

标签: unit-testing visual-studio-2012 cruisecontrol.net vs-unit-testing-framework

我正在尝试将Visual Studio 2012中的单元测试结果和代码覆盖率报告轻松显示到CruiseControl.NET构建报告中。这些内容如下:

  • MSBuild - 构建项目
  • vstest.console.exe - 通过命令行执行visual studio单元测试和代码覆盖率工具
  • 将覆盖率报告转换为XML的自定义控制台应用程序

我的问题是如何控制vstest.console.exe的输出名称。我无论如何都没有找到控制它。此时我唯一的解决方案是编写一些自定义脚本来查找coverage文件和TRX文件并重命名为已知值。巡航控制工具可以正确找到文件。

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

2 个答案:

答案 0 :(得分:1)

命令行看起来非常有限:

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(或Jenkins或其他),你将最大限度地减少过渡工作。

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

答案 1 :(得分:0)

看一下这篇文章 http://rubenwillems.blogspot.be/2011/09/setting-up-ccnet-in-combination-with.html

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