简而言之,在TFS 2015的构建步骤中使用.ununting unit测试文件会导致503 Service Unavailable异常。
经过对新TFS 2015安装的广泛搜索和测试(如TFS2015 new install, 503 Service Unavailable中所述),我可能已经发现了问题。
我们正在https://msdn.microsoft.com/en-us/library/jj159530.aspx中使用.runsettings文件,在Visual Studio测试'在我们新的TFS2015安装上构建一步,一旦调用VSTest.console.exe,TFS服务器上的下三个应用程序池就会崩溃,从而导致503 Service Unavailable错误:
首先我的.runsetting文件有点大,但我确实尝试了下一个(我认为尽可能小):
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Configurations for data collectors -->
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Configuration>
<CodeCoverage>
<!-- Match assembly file paths: -->
<ModulePaths>
<Include>
<ModulePath>.*\.dll$</ModulePath>
<ModulePath>.*\.exe$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*CPPUnitTestFramework.*</ModulePath>
<ModulePath>.*fluentassertions.*</ModulePath>
<ModulePath>.*\.test\.dll$</ModulePath>
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
使用此版本时,应用程序池崩溃。即使我完全删除了部件,也无法使用。
一旦调用下一行(从构建步骤的日志行中取出),应用程序池就会崩溃。
Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe "D:\TfsAgents\Agent1\_work\2\s\[...]\Release\Microsoft.QualityTools.Testing.Fakes.dll" "D:\TfsAgents\Agent1\_work\2\s\[...]\Release\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll" "D:\TfsAgents\Agent1\_work\2\s\[...]\Release\MyClassLib.dll" /Settings:"D:\TfsAgents\Agent1\_work\2\s\[...]\test.runsettings" /EnableCodeCoverage /logger:trx
如果查看.runsettings文件中的DataCollector标记,您会看到版本设置为14.0.0.0。如果你查看Miscrosoft的页面,他们说它应该是11.0.0.0,但是这个版本也不起作用。我认为版本11.0.0.0可能是错的,所以我用Telerik JustDecompile打开了dll,看到了真正的&#39;版本是14.0.0.0,所以我将该版本放入runsetting-file。但没有运气。
所以现在我只是从构建的定义中删除了runsetting文件,遗憾的是导致错误的代码相关百分比。所以希望有人可能有这个答案。
答案 0 :(得分:0)
与IIS服务器托管TFS的同一台计算机上运行的构建代理一起使用时,此问题仅限于特定的runsettings文件。有一个解决方法可用。在runsettings文件中的DataCollectors-&gt; Configuration-&gt; CodeCoverage标记内,您可以添加以下具有给定值的xml标记:
SELECT sum(Column) FROM tablethatIwantthevalues;
这应该可以解决这个问题,并且还建议将来如果您在Data Collector中使用带有代码覆盖率的runsettings文件,那么应该添加这些标记。