单元测试项目不是从构建服务器构建的

Leo*_*Hat 27 .net c# unit-testing visual-studio-2010

我的VS2010解决方案中有一个测试项目.单元测试自己引用以下命名空间:

using Microsoft.VisualStudio.TestTools.UnitTesting;
Run Code Online (Sandbox Code Playgroud)

通过我的PC上的以下程序集访问:

Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\
    PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Run Code Online (Sandbox Code Playgroud)

当我在我的PC上构建解决方案时,我没有任何问题; 测试将构建并运行正常.

我们有一个内部网页面,我们可以用它来启动构建服务器上的构建.当我通过此页面构建时,构建失败并出现以下错误:

Generator.cs(3,17): error CS0234: The type or namespace name 'VisualStudio' 
does not exist in the namespace 'Microsoft' (are you missing an assembly
reference?)
Run Code Online (Sandbox Code Playgroud)

显而易见的问题是Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll上面提到的构建服务器上没有.我认为这将与VS2010一起安装,并且由于我的解决方案中的项目构建了.NET 4.0目标,我希望这将安装在构建服务器上.

解决这个问题的最简单方法是什么?构建服务器不在我的管辖范围内,我不特别想记录一个作业来安装新的库.

Ton*_*nen 25

.UnitTestFramework.dll位于C:\ Program Files ...文件夹中,您可以参考它.

  1. 在源代码管理下创建目录,例如.源/二进制文件
  2. 将所述dll复制到Source/Binaries中
  3. 从单元测试程序集中删除对.UnitTestFramework.dll的引用
  4. 将.UnitTestFramework.dll的引用添加到单元测试程序集中,但这次选择现在在Source/Binaries下的dll

之后,您可以检查您的更改(确保已签入Source/Binaries文件夹)并构建解决方案.当构建服务器构建解决方案时,它应该从源代码控制中获取dll.

  • 只是回答我自己的意见:是的,会有许可问题 - 这是不允许的:http://social.msdn.microsoft.com/Forums/vstudio/en-US/32384366-b668-4f18-99eb-9c67f7eef233 /重新分配,microsoftvisualstudioqualitytoolsunittestframeworkdll (8认同)

Dea*_*lor 12

我和Visual Studio 2010解决方案的具体答案是:

  1. Visual Studio Agents 2010安装"Test Agent 2010"
  2. 重启Windows
  3. 安装Visual Studio 2010 Service Pack 1
  4. 重启Windows
  5. 确保项目引用更新为指向"Microsoft.VisualStudio.QualityTools.UnitTestFramework""10.1.0.0"而不是"10.0.0.0".

  • 请注意,如果您的服务器尚未安装Visual Studio Agents 2015,则它将安装框架4.6.1。 (2认同)