Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 当使用TFS 2008作为CI的一部分运行单元测试时,MsTest失败_Visual Studio_Visual Studio 2010_Tfs - Fatal编程技术网

Visual studio 当使用TFS 2008作为CI的一部分运行单元测试时,MsTest失败

Visual studio 当使用TFS 2008作为CI的一部分运行单元测试时,MsTest失败,visual-studio,visual-studio-2010,tfs,Visual Studio,Visual Studio 2010,Tfs,我的配置: VS2010解决方案 TFS 2008 构建服务器-TFS2008 构建服务器还安装了VS2008 Team Suite和VS2010 ultimate TFS 2008正确构建了我的VS2010解决方案。但是当需要运行单元测试时,我得到了以下MsTest错误 使用来自的“TestToolsTask”任务 程序集“D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateSassemblies\Micros

我的配置:

  • VS2010解决方案
  • TFS 2008
  • 构建服务器-TFS2008
    • 构建服务器还安装了VS2008 Team Suite和VS2010 ultimate
TFS 2008正确构建了我的VS2010解决方案。但是当需要运行单元测试时,我得到了以下MsTest错误

使用来自的“TestToolsTask”任务 程序集“D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateSassemblies\Microsoft.VisualStudio.QualityTools.MSBuildTasks.dll”。 任务“TestToolsTask”命令:
d:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe /诺洛戈 /searchpathroot:“D:\Builds\App\Source\86\Binaries” /resultsfileroot:“D:\Builds\App\Source\86\TestResults” /testcontainer:“D:\Builds\App\Source\86\Binaries\\Tests.dll” /发布:“http://tfsServer:8080/" /发布版本:“vstfs:///Build/Build/26029" /团队项目:“提案” “TestToolsTask”任务正在使用 “d:\Program”中的“MSTest.exe” 文件\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe“未指定发布平台 操作。对于开关语法,键入 “MSTest/help” MSBUILD:警告MSB6006:“MSTest.exe”已退出,代码为1。 [D:\Builds\App\Source\86\BuildType\TFSBuild.proj] 以前的错误已转换为错误 警告,因为任务已调用 使用ContinueOnError=true。建造 继续,因为“ContinueOnError” 在任务上,“TestToolsTask”设置为 “真的”。完成执行任务 “TestToolsTask”--失败

我不确定是什么导致MsTest失败

尝试过的事情:
-为在生成计算机上生成源代码的服务帐户提供了对生成文件夹的写入访问权

您可以从TFS2008的MSBuild中执行VS2010生成,但它看起来好像是在使用Visual Studio 9.0 TestToolsTask(2008)尝试运行Visual Studio 10.0(2010)测试项目(MSTest.exe)。我将尝试调整MSBuild,从“MicrosoftVisualStudio10.0”文件夹而不是“9.0”文件夹运行TestToolsTask,以便整个过程都使用相同版本的工具。您可以覆盖tfsbuild.proj文件属性中的工具路径,以确保使用Visual Studio的正确版本进行生成-类似的内容可能适用于测试工具

或者,它正在正确运行VS2010测试工具,但仍在尝试使用特定于2008的命令行-检查设置并查看是否可以调整命令行(如果是2008版本,则可能需要覆盖正在运行构建的MS目标文件)。例如,在TFS 2010中,许多命令行从使用简单的“server:MyServer”更改为类似“collection:http://MyServer:8080/tfs/MyCollection". 因此,您可能必须更改命令行,以获得与当前正在运行的2010版工具的完全兼容性,即使它最终仍指向2008服务器


我的第三个建议(不一定很有帮助)是升级到TFS2010——这是一个典型的无痛安装,比2008年要好得多,并且将消除使用混合2008/2010设置所带来的任何困难。(如果有帮助的话,我不愿意升级到2010年,因为2005->2008年的升级是8天的地狱。但是相比之下,升级到2010年的核心只花了几个小时,而且“刚刚工作”——安装/升级过程大大改进了)

Jason有一个正确的想法,这让我找到了正确的解决方案

在我的例子中,我必须将“Microsoft.TeamFoundation.Build.targets”更新为“Microsoft.TeamFoundation.Build.ProcessComponents.dll”(VS2010 dll),而不是“Microsoft.VisualStudio.QualityTools.MSBuildTasks.dll”(VS2008 dll)

我还必须确保PlatformToBuild是在TfsBuild.proj文件中指定的

完成这两个步骤后,将使用TFS2008和VS2010解决方案作为CI构建的一部分运行UnitTests


我在博客中详细介绍了解决方案:

你是对的。我要做的是将“Microsoft.TeamFoundation.Build.targets”更新为“Microsoft.TeamFoundation.Build.ProcessComponents.dll”,而不是“Microsoft.VisualStudio.QualityTools.MSBuildTasks.dll”