我正在測試從TFS2015升級到TFS2017並在運行我的單元測試時遇到問題。如何防止TFS移動vstest.console runsettings文件
測試需要一個runsettings文件:
的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文件移動到臨時文件夾並從正確的目錄執行?
不幸的是,即使部署新代理後問題依然存在 –
對不起,我仍然無法重現您的問題。你有沒有清理緩存文件夾?你有另一臺機器來部署一個構建代理嗎? –
我發現這個問題不會發生在我的其他構建定義中,所以我認爲重新構建我的構建定義可能會起作用,但是我無法在週五再次進行測試,因爲在手動取消其中一個失敗構建後, a「您的簽入驗證無法排隊等待構建定義。詳細信息:具有相同密鑰的項目已被添加。」錯誤。 –