【发布时间】:2015-10-12 18:40:21
【问题描述】:
我们的构建无法运行单元测试。
我们将 TFS 2010 升级到 TFS 2013。我认为 TFS2010 可能是对早期版本的升级,不确定。
我在 microsoft.teamfoundation.build.targets 文件中找到了 TestToolsTask 的故障。
<TestToolsTask
Condition=" '$(ProjectFileVersion)' != '2' and '$(IsDesktopBuild)'!='true' and '$(V8TestToolsTask)'!='true' and '@(LocalTestContainer)' != '' "
ToolPath="$(TestToolsTaskToolPath)"
TeamProject="$(TeamProject)"
BuildUri="$(BuildUri)"
Publish="true"
SearchPathRoot="$(OutDir)"
PathToResultsFilesRoot="$(TestResultsRoot)"
RunConfigFile="$(RunConfigFile)"
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
TestContainers="@(LocalTestContainer)"
TestNames="$(TestNames)"
ContinueOnError="$(ContinueOnTestError)"
Category="$(Category)" />
如果我将其设置为发布 (publish="true"),则会收到以下错误。
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\MSTest.exe /nologo /usestderr /testSettings:"C:\Builds\18\XXX\XXX CI\Sources/Services/Local.testsettings" ................ /category:"Mock" /publish:"http://server:port/tfs/stuff" /noprompt /publishbuild:"vstfs:///Build/54258" /teamproject:"xxx" /platform:"Any CPU" /flavor:"Debug"
Invalid switch "/publish".
Invalid switch "/publishbuild".
Invalid switch "/teamproject".
Invalid switch "/platform".
Invalid switch "/flavor".
For switch syntax, type "MSTest /help"
如果我删除了这些开关(我在上面的代码中进行了排序,和/或设置了 publish=false),它似乎会运行测试,因为它会加载所有测试程序集并且需要很长时间才能报告没有测试结果。如果我重新添加任何这些开关,我会收到错误的开关错误消息。
TeamFoundationServerUrl="http://ncmtfs2010:8080/tfs/ncmcorporate" BuildUri="vstfs:///Build/Build/54259"
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\MSTest.exe /nologo /usestderr /testSettings:"C:\Builds\18\Enterprise\Chimera Trunk CI\Sources/Services/Local.testsettings" /testcontainer: ............ /category:"Mock"
Loading C:\Builds\18\Enterprise\Sources\Services\Local.testsettings...
Loading C:\Builds\18\Enterprise\Binaries\Debug\DataTests.dll...
Loading C:\Builds\18\Enterprise\Binaries\Debug\Library.Tests.dll...
Loading C:\Builds\18\Enterprise\Binaries\Debug\Common.Tests.dll...
Starting execution...
No tests to execute.
.............
任何想法,我迷路了???
谢谢!
【问题讨论】:
-
我假设您没有使用默认的 2013 构建模板,因为它有一个用于运行单元测试的 vstest 运行器活动(vstest 是 mstest 的替代品)。您可以从简单开始并使用默认模板运行基本构建并从那里构建吗?如果您只是为了运行单元测试而陷入低级目标文件的胆量中,那么您可能在某个地方出错了
-
我同意,但是这个地方在他们的构建过程中有很多定制,会影响下游流程。我可以让构建和所有定制工作,它只是没有运行测试。我将尝试分解为仅测试并查看。