[英]TFS2015 503 service unavailable using .runsetting unit test file
簡而言之,在TFS 2015的構建步驟中使用.runsetting單元測試文件會導致503 Service Unavailable異常。
在對新的TFS 2015安裝進行廣泛搜索和測試之后(也如TFS2015的新安裝503 Service Unavailable中所述 ),我可能發現了問題。
就像VSTest一樣,我們將在https://msdn.microsoft.com/zh-cn/library/jj159530.aspx中描述的.runsettings文件中,在新的TFS2015安裝的“ Visual Studio Test”構建步驟中使用。調用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,然后看到“真實”版本是14.0.0.0,因此我將該版本放入了runsetting-file。 但是沒有運氣。
因此,現在我只是從構建的定義中刪除運行設置文件,不幸的是,這將導致錯誤的代碼覆蓋率。.因此,希望有人可能對此有答案。
與在IIS服務器托管TFS的同一台計算機上運行的生成代理一起使用時,此問題僅限於特定的運行設置文件。 有一種解決方法。 在runsettings文件的DataCollectors-> Configuration-> CodeCoverage標記內,您可以添加以下具有給定值的xml標記:
<UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
<AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
<CollectFromChildProcesses>True</CollectFromChildProcesses>
<CollectAspDotNet>false</CollectAspDotNet>
這應該可以解決該問題,並且還建議如果將來在Data Collector中使用代碼覆蓋率的runsettings文件,則應添加這些標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.