【问题标题】:Integrating Visual Studio 2012 into Cruise Control.NET将 Visual Studio 2012 集成到 Cruise Control.NET
【发布时间】:2013-10-24 00:07:05
【问题描述】:

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

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

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

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

【问题讨论】:

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


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

    【讨论】:

    • 我之前扩展了 MSBuild 来做各种有趣的事情。能够扩展它是强大而美好的。我可能最终会做一些。目前,我正在执行以下操作: 1. 调用清理批处理文件以删除覆盖率/测试报告 2. 使用 MSBuild 执行构建 3. 调用工具进行单元测试和覆盖率 4. 调用自定义工具来查找和重命名覆盖率/测试报告 5. 调用自定义工具生成 XML 覆盖率报告 6. 使用 ReportGenerator(来自 codeplex)获取 XML 并使其成为 HTML
    • 所以我的最新方法与您的非常相似。我只需要尝试打包它,以便它可以移动到其他系统(如您所说)。
    【解决方案2】:

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

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

    【讨论】:

    • 这适用于 Visual Studio 2010。在 Visual Studio 2012 中,他们有 vstest.console.exe。这不允许您指定结果文件。这就是我试图确保我不会错过这个新工具的任何东西。
    • 这是一篇非常适合 VS2010 的文章:-P
    • 我忽略了版本,抱歉。目前我手头没有 VS2012,但 msdn 的文档说导出仍然存在。 msdn.microsoft.com/en-us/library/ms182489%28v=vs.110%29.aspx /resultsfile:testResults.trx
    • 这个网站似乎展示了一种使用 /settings 参数保存到文件的方法,它位于页面中间blogs.msdn.com/b/bhuvaneshwari/archive/2012/06/16/…
    • 我不确定是否可以使用 MSTest.exe 来做单元测试结果。我正在使用的代码库是 C++,它也必须是 64 位的。 MSTest 向我抱怨无法加载 64 位测试代码。我相信 vstest.console.exe 是作为 2012 年的一部分编写的,以取代 MSTest。设置文件我只能找到如何设置结果目录名而不是文件名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多