unit testing项目不是从构建服务器构建的
我的VS2010解决方案中有一个测试项目。 unit testing自己引用以下命名空间:
using Microsoft.VisualStudio.TestTools.UnitTesting;
通过我的PC上的以下程序集访问:
Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
当我在我的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?)
显而易见的问题是上面提到的Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
在构建服务器上不存在。 我认为这将与VS2010一起安装,并且由于我的解决方案中的项目构建了.NET 4.0目标,我希望这将安装在构建服务器上。
解决这个问题的最简单方法是什么? 构建服务器不在我的管辖范围内,我并不特别想记录一个作业来安装新的库。
.UnitTestFramework.dll位于C:\ Program Files …文件夹中,您可以参考它。
- 在源代码管理下创建目录,例如。 源/二进制文件
- 将所述dll复制到Source / Binaries中
- 从unit testing程序集中删除对.UnitTestFramework.dll的引用
- 将.UnitTestFramework.dll的引用添加到unit testing程序集中,但这次选择现在位于Source / Binaries下的dll
之后,您可以检查您的更改(确保已签入Source / Binaries文件夹)并构建解决方案。 当构建服务器构建解决方案时,它应该从源代码控制获取dll。
我和Visual Studio 2010解决方案的具体答案是:
- 从Visual Studio Agents 2010安装“Test Agent 2010”
- 重启Windows
- 安装Visual Studio 2010 Service Pack 1
- 重启Windows
- 确保项目引用更新为指向“Microsoft.VisualStudio.QualityTools.UnitTestFramework”“10.1.0.0”而不是“10.0.0.0”。