我的配置:
TFS 2008正确构建我的VS2010解决方案。但是,当运行单元测试时,我得到以下MsTest错误。
使用“TestToolsTask”任务 程序集“D:\ Program Files \ Microsoft 视觉工作室 9.0 \ Common7 \ IDE \ PrivateAssemblies \ Microsoft.VisualStudio.QualityTools.MSBuildTasks.dll”。 任务“ TestToolsTask ”命令:
d:\ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe / NOLOGO / searchpathroot: “d:\构建\ APP \源\ 86个\二进制文件” / resultsfileroot: “d:\构建\ APP \源\ 86个\ TestResults” /testcontainer:"D:\Builds\App\Source\86\Binaries\\Tests.dll” /发布: “HTTP:// tfsServer:8080 /” / publishbuild: “vstfs:///构建/编译/ 26029” / teamproject:“提案” “TestToolsTask”任务正在使用 “d:\ Program”中的“MSTest.exe” Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe“。 没有为发布指定平台 操作。对于切换语法,请键入 “MSTest /帮助” MSBUILD:警告MSB6006:“MSTest.exe”退出,代码为1。 [d:\构建\ APP \源\ 86 \ BuildType \ TFSBuild.proj] 先前的错误已转换为a 警告,因为任务被调用 使用ContinueOnError = true。建立 继续,因为“ContinueOnError” 在“TestToolsTask”任务设置为 “真正”。完成执行任务 “TestToolsTask” - 失败。
我不确定导致MsTest失败的原因。
尝试的事情: - 提供对构建文件夹的写访问权限,以便在构建计算机上构建源的服务帐户
答案 0 :(得分:2)
您可以在TFS2008的MSBuild中执行VS2010构建,但看起来好像是使用Visual Studio 9.0 TestToolsTask(2008)来尝试运行Visual Studio 10.0(2010)测试项目(MSTest.exe)。我尝试调整MSBuild从“Microsoft Visual Studio 10.0”文件夹而不是“9.0”运行TestToolsTask,以便整个过程使用相同版本的工具。您可以覆盖tfsbuild.proj文件的属性中的工具路径,以确保使用正确版本的Visual Studio构建 - 类似的东西可能适用于测试工具。
或者,它正在运行VS2010测试工具,但仍尝试使用特定于2008的命令行 - 检查设置并查看是否可以调整命令行(您可能需要覆盖MS目标文件,正在运行构建,如果它是2008版本)。例如,在TFS 2010中,许多命令行从使用简单的“服务器:MyServer”变为类似“集合:http:// MyServer:8080 / tfs / MyCollection”。因此,您可能必须更改命令行才能与现在运行的2010版本工具完全兼容,即使它最终仍然指向2008服务器。
我的第三个建议(不一定非常有用)是升级到TFS2010 - 它通常是一个无痛的安装,比2008年好得多,并且将消除使用混合2008/2010设置造成的任何困难。 (如果它有所帮助,我不愿意升级到2010年,因为2005-> 2008升级仅仅是8天的纯粹地狱。但相比之下,升级到2010年的核心只用了几个小时而且“刚刚工作” - 安装/升级过程大大改进了)
答案 1 :(得分:0)
杰森有正确的想法,引导我找到正确的解决方案。
在我的情况下,我不得不更新“Microsoft.TeamFoundation.Build.targets”以指向“Microsoft.TeamFoundation.Build.ProcessComponents.dll”(VS2010 dll)而不是“Microsoft.VisualStudio.QualityTools.MSBuildTasks”。 dll“(VS2008 dll)
我还必须确保在TfsBuild.proj文件中指定了PlatformToBuild。
完成这两个步骤后,使用TFS2008和VS2010解决方案将UnitTests作为CI构建的一部分运行。
我在这里详细介绍了解决方案:http://blog.aggregatedintelligence.com/2011/03/vs2010-tfs-2008-and-unit-tests.html