我正在使用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,但仍然存在相同的错误。
答案 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对您没有帮助。