4

类似于如何在没有 VS 的情况下在持续集成中使用 MsTest?,我想在 TeamBuild 服务器上运行 mstest.exe。

我的上下文是在 MSBuild 中捕获错误状态- 即,我只是尝试使用 mstest.exe /publish 将结果上传到 TFS 存储库。因此,http://www.shunra.com/shunrablog/index.php/2009/04/23/running-mstest-without-visual-studio/中的完整内容(您希望)可能是矫枉过正,尤其是作为 MSTEST.exe,如http://social.msdn.microsoft.com/Forums/en-US/tfsgeneral/thread/e4575890-8f88-413c-a7f3-0d09d3b9cb01中所述,我需要做的就是安装 Team Explorer。

我已经安装了 VS2008 Team Explorer SP1 和 mstest.exe /? 仍然没有告诉我发布选项。

回想一下,它说mstest.exe / 只需要Team Explorer吗?用于发布:

如果安装了 Team Explorer,以下选项也可用:

/publish:[服务器名称] 将结果发布到 Team Foundation Server。

/publishbuild:[build name] 用于发布测试结果的构建标识符。

/publishresultsfile:[文件名] 要发布的测试结果文件的名称。如果未指定,则使用当前测试运行生成的文件。

/teamproject:[团队项目名称] 构建所属团队项目的名称。发布测试结果时指定此项。

/platform:[platform] 发布测试结果的构建平台。

/flavor:[flavor] 发布测试结果的构建风格。

我将沿着 procmon.exe 路径找出缺少的内容,但理想情况下,知情人士会介入并回答:-

mstest.exe /publish 应该只需要如上所述的团队资源管理器,还是需要 VSTT 和团队资源管理器?

4

3 回答 3

6

MSTest.exe 的 /publish 选项执行许可证检查,以确保在发布代码部分之前安装了 Visual Studio 的“团队”版本(即开发人员或测试版本)。

引入此限制似乎是为了允许 Visual Studio 标准版本中的基本单元测试功能,但要求您拥有更昂贵的 Visual Studio 团队版本之一,以在测试中启用“团队”相关功能 - 例如发布你的测试结果到 TFS。

如果您没有安装 Team Epxlorer 的团队版 Visual Studio,总共缺少 3 个功能。

  • 发布到 TFS
  • 代码覆盖率
  • 连接到远程代理。

如果您安装了开发版,那么您将获得发布和代码覆盖,但不会获得远程代理代理功能(即用于进行负载测试)。

测试版和 Visual Studio Team Suite 应有尽有。

如果您想查看使用 MSTest.exe 从构建服务器发布单元测试数据(在此示例中为 JUnit 测试数据)的自定义 MSBuild 任务示例,请查看我编写的Teamprise Build Extensions。这些源代码可在许可的MS-PL开源许可下获得。

于 2009-08-04T08:42:46.257 回答
2

在 MSDN 论坛上读到 mstest的/publish功能需要购买 VS Team Developer 或 VS Team Test 版本。任何较小的版本,例如标准/专业或团队浏览器都没有。

不过,我真的很想看到更多的证据,因为使用“标准”VS2008 您可以编写和运行单元测试,但您不能随意在构建机器上运行它们,这似乎是相当不合理的 :-(

要回答这个问题:

mstest.exe /publish 应该只需要 Team Explorer,还是需要 VSTT 和 Team Explorer?

看来它需要 VSTT(我认为这意味着 Visual Studio 团队测试版)

于 2009-08-03T21:22:11.737 回答
2

好吧,您在运行时收到的消息 mstest.exe /?实际上非常具有误导性。它告诉您需要 Team Explorer 才能发布您的测试结果,但不幸的是,安装 Team Explorer 并没有改变任何东西。正如 Martin 所说,MsTest 会进行许可证检查以确保安装了适当版本的 Visual Studio,因此“/publish”和其他开关不可用。

而“适当的”版本 MsTest 是指 Premium 或 Ultimate,不确定其他版本。

微软说你应该在你的服务器上安装 Visual Studio 以获得一个功能齐全的 CI,这是唯一官方支持的解决方案,但如果你真的不喜欢这个概念(我也不喜欢),你可以让 MsTest 认为Visual Studio 已安装在您的服务器上。

将一些注册表项从您的开发机器导出到您的 CI 服务器就足够了,瞧!- MsTest 确实将您的测试结果发布到 TFS。注册表项位于 HKLM\SOFTWARE\Microsoft\VisualStudio\12.0\LicensesHKLM\Software\Wow6432Node\Microsoft\VisualStudio\12.0\Licenses 取决于您的系统。

您可以在此处找到此解决方案的更多详细信息:http: //blog.foxxtrot.net/2010/02/hacking-mstest-out-of-visual-studio.html

于 2015-10-12T10:26:48.473 回答