在构建服务器上执行单元测试需要什么?

6

我正在进行单元测试(仅使用VS 2013自带的框架)。

在本地一切正常。如何使其在构建服务器上工作?构建服务器是TFS 2013,除了2010版本外没有安装Visual Studio。我已经将所有4.5 .net和.targets文件从我的Visual Studio移动到构建服务器上,以便编译4.5 dll和Azure项目。

首先,我遇到的问题是构建模板使用AgileRunner或一些与VS2013相关的东西。我将其更改为MSTest。这是正确的更改吗?是否有仅包含MSTest而不含Visual Studio的安装程序可供在构建服务器上安装?

我的老板希望我避免在构建服务器上安装Vs2013。

2个回答

10
在构建服务器上安装Visual Studio是一个非常普遍的做法。要求已经在安装指南中提到了。如果需要,您可以同时安装Visual Studio 2010和2013。.NET的许多部分都依赖于它。

安装Visual Studio和其他软件以启用编译和其他功能

您必须在构建代理上安装您的团队在其开发机器上使用的Visual Studio版本。请参阅安装Visual Studio。您还必须安装任何其他在您的开发机器上安装并且构建您的应用所需的软件和组件。

http://msdn.microsoft.com/en-us/library/bb399135.aspx#software

如果您拥有MSDN订阅,则甚至可以使用现有许可证来为构建服务器提供授权,因此没有额外的费用。

在构建服务器上使用Visual Studio

如果您有一名或多名持有Visual Studio Ultimate with MSDN、Visual Studio Premium with MSDN或Visual Studio Professional with MSDN的授权用户,则可以将Visual Studio软件安装为Team Foundation Server 2013 Build Services的一部分。这样,您就不需要为每个启动构建操作的人购买Visual Studio许可证来覆盖在构建服务器上运行Visual Studio的情况。

http://www.microsoft.com/en-us/download/details.aspx?id=13350

您的老板有没有特别的理由不想安装Visual Studio?

关于敏捷测试运行器,它是随Visual Studio 2012一起发布的改进版测试运行器,取代了旧的MsTest运行器,并将替换旧的MsTest运行器仍需使用的最后几个功能。虽然MsTest运行器仍然可以使用,但某些功能不太容易使用和配置(如代码覆盖率收集)。敏捷测试运行器还需要用于其他测试框架的可扩展性选项,包括XUnit .NET、NUnit,以及Javascript单元测试支持(使用Chutzpah)。
其他需要安装Visual Studio的功能包括:
- 代码分析 - 代码覆盖率 - MsDeploy / WebDeploy - SQL Server数据工具 - 其他
作为获取仅测试运行器的替代方案,您可以尝试将TFS测试控制器和代理安装到服务器上(无需配置),测试代理将安装许多与测试相关的功能,而不实际安装Visual Studio Shell。

感谢您提供如此详细的答案和参考资料。 - Poul K. Sørensen
1
感谢您的回答。我们没有许可证允许我们在构建服务器上安装完整的VS,但安装测试控制器和代理程序非常完美。 - olex
安装测试代理以获取VS测试运行程序。使用Visual Studio 2013 Shell进行工作,无需在构建服务器上安装完整的VS。 - Junle Li

-5

在您的构建服务器上不安装Visual Studio,您正在违反与Microsoft的许可协议。尽管Microsoft自己可能在其内部构建服务器上不安装Visual Studio进行构建,但这种情况绝对没有得到官方支持。

在没有安装Visual Studio的情况下进行构建会导致未定义的行为,并危及您的构建完整性。我建议在Microsoft正式支持此场景之前,要避免这些尝试。

当我们作为金牌合作伙伴2年前询问时,Microsoft强烈建议不要在没有安装Visual Studio的情况下进行构建,因为它在任何官方方式上都没有得到支持,也没有涵盖该场景的许可模型。


5
真的吗?自从何时和在哪里微软建议安装Visual Studio进行构建?他们有一个专门用于构建的项目,并巧妙地将其命名为MSBuild。事实上,MSBuild是Visual Studio使用的构建引擎(并且它本身也是一个独立的应用程序)。 - newfurniturey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接