【问题标题】:Build VS2010 solution on Team Build 2008 - MSTest failed to run在 Team Build 2008 上构建 VS2010 解决方案 - MSTest 无法运行
【发布时间】:2023-03-31 11:46:01
【问题描述】:

我在构建 VS2010 解决方案时遇到了一个奇怪的问题,包括。 Team Build 2008 服务器上的单元测试。它构建了解决方案,也可以在没有错误的情况下运行测试,但在运行测试后,我收到以下警告,导致构建中断:

MSBUILD:警告 MSB6003: 指定的任务可执行文件“MSTest.exe” 无法运行。系统无法 找到指定的文件 [C:\data\builds\FSuite\CI_Project[调试]\BuildType\TFSBuild.proj] 先前的错误已转换为 警告,因为任务被调用 使用 ContinueOnError=true。建造 继续,因为“ContinueOnError” 在任务“TestToolsTask”上设置为 “真”。

似乎不是没有找到 MSTest 的问题,我还检查了 TFSBuild.proj 文件是否在这个位置 - 它没有丢失。那会是什么呢?

编辑: 同时我发现,我们的旧构建服务器加载并启动了一次测试程序集。

任务“TestToolsTask”命令:
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe /nologo /runco​​nfig:"C:\data\builds\FSuite\V1.0_CI_FSuite[调试]\Sources\Sources\Products\FSuite.Debug.testrunco​​nfig" /searchpathroot:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug" /resultsfileroot:"C:\data\builds\FSuite\V1.0_CI_FSuite[调试]\TestResults" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.AppConfiguration.Console.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.Common.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.Common.UI.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.Dbms.Handler.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Base.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.BusinessObjects.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Client.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Client.UI.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Enums.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Messages.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Reporting.ReportPackage.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Reporting.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.MasterStation.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.MonitoringStation.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Pac.ProductInspection.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Pac.XmlRpcProtocol.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Server.DomainLayer.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Server.Licensing.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Server.NotificationLayer.Tests.Unit.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Tests.Unit.Ext.dll" /testcontainer:"C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Tests.Unit.Joint.dll" /发布:“http://ch06sd01:8080/” /publishbuild:"V1.0_CI_FSuite[调试]_20100728.4" /团队项目:“FSuite” /平台:“x86” /flavor:"调试" “TestToolsTask”任务正在使用 “C:\Program”中的“MSTest.exe” 文件\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"。正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Sources\Sources\Products\FSuite.Debug.testrunco​​nfig... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.AppConfiguration.Console.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.Common.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.Common.UI.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.Dbms.Handler.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Base.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.BusinessObjects.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Client.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Client.UI.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Enums.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Messages.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Reporting.ReportPackage.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Joint.Reporting.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.MasterStation.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.MonitoringStation.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Pac.ProductInspection.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Pac.XmlRpcProtocol.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Server.DomainLayer.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Server.Licensing.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Server.NotificationLayer.Tests.Unit.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Tests.Unit.Ext.dll... 正在加载 C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Tests.Unit.Joint.dll... 开始执行...

结果...

2387/2387 测试通过 摘要 -------- 试运行警告。 通过 2387 ------------ 总共 2387 个结果文件:C:\data\builds\FSuite\V1.0_CI_FSuite[Debug]\TestResults\ch06-tfsservice_CH06WL2013302 2010-07-28 11_08_03_x86_Debug.trx
运行配置:FSuite 调试 测试配置 运行有以下问题:代码覆盖率检测警告 在处理文件时 MT.FSuite.Joint.Enums.dll: TESTTOOLSTASK:警告 VSP2007: C:\data\builds\FSuite\V1.0_CI_FSuite[调试]\Binaries\x86\Debug\MT.FSuite.Joint.Enums.dll 不包含可检测的代码。 TESTTOOLSTASK:警告:测试运行 部署问题:程序集或 模块 'DevExpress.RichEdit.v10.1.Core' 直接或间接引用 测试容器 'c:\data\builds\fsuite\v1.0_ci_fsuite[debug]\binaries\x86\debug\mt.fsuite.tests.unit.ext.dll' 没找到。等待发布... 发布试运行结果 ch06-tfsservice@CH06WL2013302 2010-07-28 11:08:03_x86_Debug 到 http://ch06sd01:8080/Build/v1.0/PublishTestResultsBuildService2.asmx... ................................发布 顺利完成。执行完毕 任务“TestToolsTask”。

但是带有 VS2010 的新构建服务器会加载除 MT.FSuite.Tests.Unit.Joint.dll 之外的所有测试程序集并执行测试,这些测试成功运行,然后使用上述程序集再次调用 MSTest 并失败。

p>

命令:MSTest.exe /nologo /runco​​nfig:"C:\data\builds\FSuite\CI_FSuite[调试]\Sources\Sources\Products\FSuite.Debug.testrunco​​nfig" /searchpathroot:"C:\data\builds\FSuite\CI_FSuite[调试]\Binaries\x86\Debug" /resultsfileroot:"C:\data\builds\FSuite\CI_FSuite[调试]\TestResults" /testcontainer:"C:\data\builds\FSuite\CI_FSuite[Debug]\Binaries\x86\Debug\MT.FSuite.Tests.Unit.Joint.dll" /发布:“http://ch06sd01:8080/” /publishbuild:"CI_FSuite[调试]_20100728.2" /团队项目:“FSuite” /平台:“x86” /flavor:"调试" “TestToolsTask”任务正在使用 “MSTest.exe”来自“MSTest.exe”。

我想知道为什么,因为测试容器字符串没有改变,而且第二次它不再说明它从哪里获取 MSTest.exe...

感谢您的帮助, 恩尼

【问题讨论】:

    标签: visual-studio-2010 msbuild mstest tfsbuild


    【解决方案1】:

    好的,我找到了the source of the problem。 TeamBuild 目标文件 (C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets) 的值错误 - 替换以下内容:

        <UsingTask TaskName="TestToolsTask" 
    AssemblyFile="$(MSTestRefPath)\Microsoft.VisualStudio.QualityTools.MSBuildTasks.dll" 
    Condition="'$(ProjectFileVersion)' == '2'" />
    

    (如果您尚未编辑文件,则在第 82 行的最后一个 UsingTask)与:

        <UsingTask TaskName="Microsoft.TeamFoundation.Build.Tasks.TestToolsTask" 
    AssemblyFile="C:\Program Files\Microsoft Visual Studio 
    10.0\Common7\IDE\PrivateAssemblies\Microsoft.TeamFoundation.Build.ProcessComponents.dll" 
    Condition=" '$(ProjectFileVersion)' == '2' "/>
    

    这为我解决了问题,现在我的构建灯都是绿色的。

    【讨论】:

    • 我们的第二个构建服务器出现了不同的故障,这是解决它的答案^^ 但是第一个构建服务器仍然有这个奇怪的症状。
    猜你喜欢
    • 2011-05-08
    • 2011-12-24
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多