2017-02-02 30 views
0

我正在測試從TFS2015升級到TFS2017並在運行我的單元測試時遇到問題。如何防止TFS移動vstest.console runsettings文件

測試需要一個runsettings文件:

enter image description here

的runsettings文件在物理上是在C:\TFS\1\s但由於某種原因TFS2017被複制到C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\tmpA03作爲可以在日誌中可以看出:

2017-02-01T21:04:44.9728814Z Working folder: C:\TFS\1\s 
2017-02-01T21:04:44.9728814Z Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe "C:\TFS\1\s\SpecFlow2\bin\Debug\SpecFlowTests.dll" "C:\TFS\1\s\UnitTests\bin\Debug\UnitTests.dll" "C:\TFS\1\s\UnitTests-Analytics\bin\Debug\UnitTests-Analytics.dll" /TestCaseFilter:"TestCategory!=MultiThreadedTests&TestCategory!=Purgatory" /Settings:"C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\tmpA03.tmp" /logger:trx 

但是,我的runsettings包含對testsettings的引用:

<?xml version="1.0" encoding="utf-8"?> 
<RunSettings> 
    <RunConfiguration> 
    <!-- 0 = As many processes as possible, limited by number of cores on machine, 1 = Sequential (1 process), 2-> Given number of processes up to limit by number of cores on machine--> 
    <ResultsDirectory>.\TestResults</ResultsDirectory> 
    <MaxCpuCount>3</MaxCpuCount> 
    <TargetPlatform>x64</TargetPlatform> 
    </RunConfiguration> 

    <MSTest> 
    <SettingsFile>SingleThreaded.testsettings</SettingsFile> 
    <ForcedLegacyMode>true</ForcedLegacyMode> 
    </MSTest> 
</RunSettings> 

因爲SingleThreaded.testsettings仍然在C:\TFS\1\s中,所以測試運行失敗,即使手動複製文件,測試依然失敗,因爲某些測試依賴於測試的工作目錄。

如何防止TFS將我的runsettings文件移動到臨時文件夾並從正確的目錄執行?

回答

1

我不能低於設定重現您的問題就在我身邊的TFS 2017年:

enter image description here

在日誌中,runsetting文件從C:\Agent\_work\10\s\Parallel.runsettings得到,所以TFS將不會移動自動設置文件:

2017-02-03T06:08:37.8352139Z Working folder: C:\Agent\_work\10\s 
2017-02-03T06:08:37.8352139Z Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe "C:\Agent\_work\10\s\ClassLibrary1\bin\Release\Microsoft.TeamFoundation.TestManagement.Client.dll" "C:\Agent\_work\10\s\TestCaseProject\bin\Release\Microsoft.TeamFoundation.Test.WebApi.dll" "C:\Agent\_work\10\s\TestCaseProject\bin\Release\Microsoft.TeamFoundation.TestManagement.Client.dll" "C:\Agent\_work\10\s\TestCaseProject\bin\Release\Microsoft.TeamFoundation.TestManagement.WebApi.dll" "C:\Agent\_work\10\s\UnitTestProject1\bin\Release\Microsoft.TeamFoundation.TestManagement.Client.dll" "C:\Agent\_work\10\s\UnitTestProject1\bin\Release\UnitTestProject1.dll" /Settings:"C:\Agent\_work\10\s\Parallel.runsettings" /logger:trx 

請檢查您是否在構建定義的Repository選項卡中映射了runsetting文件。並嘗試清理構建代理上的緩存文件:C:\Users\username\AppData\Local\Microsoft\Team Foundation\7.0\Cache

如果問題仍然存在,請嘗試部署新的構建代理以查看其工作原理。

+0

不幸的是,即使部署新代理後問題依然存在 –

+0

對不起,我仍然無法重現您的問題。你有沒有清理緩存文件夾?你有另一臺機器來部署一個構建代理嗎? –

+0

我發現這個問題不會發生在我的其他構建定義中,所以我認爲重新構建我的構建定義可能會起作用,但是我無法在週五再次進行測試,因爲在手動取消其中一個失敗構建後, a「您的簽入驗證無法排隊等待構建定義。詳細信息:具有相同密鑰的項目已被添加。」錯誤。 –