2

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

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

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

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

4

2 回答 2

1

命令行看起来非常有限:

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

“TRX 记录器不支持任何参数(与 TFS 发布者记录器不同)。”

从:

为 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 专有命令,你可以让它工作,但它更难维护恕我直言。

于 2013-10-23T16:07:05.877 回答
0

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

它显示了所需的步骤。看看那里的第 4 步和第 5 步,它们涵盖了单元测试和覆盖率。

于 2013-10-23T12:05:14.037 回答