【问题标题】:MS Build Not Compiling MS Test Project on Build ServerMS Build 未在构建服务器上编译 MS 测试项目
【发布时间】:2011-10-19 06:08:11
【问题描述】:
我正在使用 TFS 2008 和 VS 2010。将 MS 测试项目添加到我的解决方案后,我开始在构建服务器上收到以下错误。
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”(您是否缺少 using 指令或
程序集引用?) UnitTest1.cs(62,10):错误 CS0246:类型或
找不到命名空间名称“TestMethodAttribute”(您是
缺少 using 指令或程序集引用?)
UnitTest1.cs(12,6):错误 CS0246:类型或命名空间名称
找不到“TestClass”(您是否缺少 using 指令或
程序集参考?) UnitTest1.cs(12,6):错误 CS0246:类型或
找不到命名空间名称“TestClassAttribute”(您是
缺少 using 指令或程序集引用?)完成执行
任务“Csc”——失败。
我在构建服务器上安装了 VS 2010,但仍然出现相同的错误。
【问题讨论】:
标签:
visual-studio-2010
msbuild
【解决方案1】:
问题出在您的测试项目中。您正在引用一些尚未部署到构建服务器的程序集。此外,您不能通过简单地复制并粘贴到 GAC 或工作目录来做到这一点。
最好和最简单的方法是在构建服务器中安装Visual studio 2010 Agents。
它是免费的,可以从 MS 网站下载。通过安装代理,它将安装编译甚至运行 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 的一些问题
【解决方案3】:
您的标签提到了 VS2010 和 TFS2008。默认情况下,单元测试项目设置为面向 .NET 4.0,而 Team Build 2008 将不知道如何处理这些项目。您应该将您的测试项目设置为以 .NET 3.5 为目标(只有在您安装了 VS2010 SP1 后才能完成)。或者将 TFS 2008 升级到 TFS2010。
如果您想使用 TFS 2008 运行测试工具,您还应该在构建代理上安装 Visual Studio Team Developer 或套件。 Visual Studio 2010 帮不了你。