我的问题很简单,我有一个运行 msbuild 和 mstest 的 CI 服务器。
问题是,Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
如果我们不在服务器中安装 VS,那么它就不存在(而且我认为其他文件与 mstest 相关......)这对于 CI 服务器来说非常愚蠢......
我怎样才能解决这个问题?
我的问题很简单,我有一个运行 msbuild 和 mstest 的 CI 服务器。
问题是,Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
如果我们不在服务器中安装 VS,那么它就不存在(而且我认为其他文件与 mstest 相关......)这对于 CI 服务器来说非常愚蠢......
我怎样才能解决这个问题?
不幸的是,在 2005 年或 2008 年必须在构建代理机器上安装 VS 没有受支持或简单的方法(2010 年将有一个测试代理安装程序)。更新:有关更多信息,请参阅 Steve Smith 的这篇文章,其中的内容几乎相同
这不仅仅是缺少程序集的问题 - 如果您想运行测试,运行程序不仅仅是一个单独的小 EXE 和一个 DLL。
是的,难以置信!不用说,地球上很少有其他测试框架有这个限制,所以除非你有很多测试,否则你可以考虑迁移,原因很多地方都有,例如:基本问题和不切实际使用 MSTest ...
编辑:在 Rihan 的回复的提示下,我在没有 Visual Studio 的情况下运行了以下运行 mstest。- 它不完全受支持,但它“有效”......
编辑 2:在没有 Visual Studio 的情况下运行 MSTest - Gallio在受支持和非 hacky 方面看起来更有希望。注意,请参阅@Johannes Rudolph 对这篇文章的评论
编辑 3:在这个问题上添加了 info re 2010 status
注意:我对 2008 年有一个类似的问题,关于支持 MSTest 的 /publish 参数需要什么:-在 TeamBuild 服务器上运行 MSTEST.exe /publish,先决条件是什么?
@Ruben Bartelink:您可以通过安装测试代理在您的机器中获取 mstest.exe。你可以找到它@给定的位置。安装后,使用 /testcontainer 和 /test 选项调用 mstest.exe。它成功运行并创建 trx 文件。检查可以处理 trx 并生成报告的东西。
http://www.microsoft.com/en-us/download/details.aspx?id=38186
我和 Visual Studio 2010 的具体解决方案是:
我们的集成服务器上有巡航控制设置。我还没有安装 Visual Studio,但是我已将 MSTEST 程序集复制到 GAC 中。然后,我们使用Cruise Control Documentation来设置我们的测试报告。效果很好。