MS Build在构建服务器上无法编译MS Test项目

8
我正在使用 TFS 2008 和 VS 2010。将 MS 测试项目添加到我的解决方案后,在构建服务器上开始收到以下错误消息。
UnitTest1.cs(5,40): error CS0234: 命名空间 Microsoft.VisualStudio.TestTools 中不存在类型或命名空间 UnitTesting(是否缺少程序集引用?)UnitTest1.cs(22,17): error CS0246: 找不到类型或命名空间名称 TestContext(是否缺少 using 指令或程序集引用?)UnitTest1.cs(28,16): error CS0246: 找不到类型或命名空间名称 'TestContext'(是否缺少 using 指令或程序集引用?)UnitTest1.cs(62,10): error CS0246: 找不到类型或命名空间名称 'TestMethod'(是否缺少 using 指令或程序集引用?)UnitTest1.cs(62,10): error CS0246: 找不到类型或命名空间名称 'TestMethodAttribute'(是否缺少 using 指令或程序集引用?) UnitTest1.cs(12,6): error CS0246: 找不到类型或命名空间名称 'TestClass'(是否缺少 using 指令或程序集引用?)UnitTest1.cs(12,6): error CS0246: 找不到类型或命名空间名称 'TestClassAttribute'(是否缺少 using 指令或程序集引用?)任务“Csc”已执行完毕 -- 失败。
我在构建服务器上安装了 VS 2010 但仍然出现相同的错误。
3个回答

7
问题出在你的测试项目上。你引用了一些未部署到构建服务器的程序集。而且你不能简单地将它们复制粘贴到GAC或工作目录中。
最好、最简单的方法是在构建服务器上安装Visual Studio 2010 Agents。它是免费的,可以从微软网站下载。通过安装代理,它将安装编译甚至运行MSTest项目所需的所有库。

2
您可以检查是否使用了正确的MSBuild。在我的情况下,当我收到如下消息时:
'TestMethod' could not be found

我们必须确保运行的是正确的MSBuild版本。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe your_solution.sln /t:rebuild /t:Rebuild  /clp:ErrorsOnly

这也修复了与Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll相关的一些问题。


0

你的标签提到了VS2010和TFS2008。默认情况下,单元测试项目的目标是.NET 4.0,而Team Build 2008不知道如何处理这些项目。你应该将你的测试项目设置为.NET 3.5(只有在安装了VS2010 SP1后才能完成)。或者升级TFS 2008到TFS2010。

如果你想在TFS 2008中运行测试工具,你还应该在构建代理上安装Visual Studio Team Developer或Suite。Visual Studio 2010对此没有帮助。


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