MSBuild不在Build Server上编译MSTest项目

时间:2011-08-03 15:55:25

标签: visual-studio-2010 msbuild tfs2008

我正在使用TFS 2008和VS 2010.在我的解决方案中添加MS Test项目后,我开始在构建服务器上收到以下错误。

  

UnitTest1.cs(5,40):错误CS0234:类型或命名空间名称   命名空间中不存在“UnitTesting”   'Microsoft.VisualStudio.TestTools'(你错过了一个程序集吗?   引用?)UnitTest1.cs(22,17):错误CS0246:类型或命名空间   无法找到名称'TestContext'(您是否错过了使用   指令或程序集引用?)UnitTest1.cs(28,16):错误   CS0246:找不到类型或命名空间名称“TestContext”   (您是否缺少using指令或程序集引用?)   UnitTest1.cs(62,10):错误CS0246:类型或命名空间名称   找不到“TestMethod”(你是否错过了使用指令或   程序集引用?)UnitTest1.cs(62,10):错误CS0246:类型或   找不到命名空间名称'TestMethodAttribute'(是吗?   缺少using指令或程序集引用?)   UnitTest1.cs(12,6):错误CS0246:类型或命名空间名称   找不到'TestClass'(你是否错过了使用指令或   程序集引用?)UnitTest1.cs(12,6):错误CS0246:类型或   找不到命名空间名称'TestClassAttribute'(是吗?   缺少using指令或程序集引用?)完成执行   任务“Csc” - 失败。

我在构建服务器上安装了VS 2010,但仍然存在相同的错误。

3 个答案:

答案 0 :(得分:7)

问题在于您的测试项目。您正在引用一些尚未部署到Build Server的程序集。您也不能通过简单地复制并粘贴到GAC或工作目录来实现这一目的。

最好和最简单的方法是在构建服务器中安装Visual studio 2010 Agents。 它是免费的,可以从MS网站下载。通过安装代理,它将安装所有必需的库,用于编译甚至运行MSTest项目。

答案 1 :(得分: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

的一些问题

答案 2 :(得分: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对您没有帮助。