我正在将我的天蓝色管道转换成YAML管道。当我触发构建时,它在单元测试步骤中失败,并给出如下错误
90秒后,errorvstest.console进程无法连接到testhost进程。这可能是由于机器速度慢,请设置环境变量VSTEST_CONNECTION_TIMEOUT以增加超时。

我找不到在任何地方添加VSTEST_CONNECTION_TIMEOUT值的方法。你能帮帮我吗。
下面是我使用的示例.yml
- task: VSTest@2
displayName: 'Test'
inputs:
testAssemblyVer2: '**\bin\**\Tests.dll'
testFiltercriteria: 'TestCategory=Unit'
runSettingsFile: XYZ.Tests/codecoverage.runsettings
codeCoverageEnabled: true
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
diagnosticsEnabled: true发布于 2020-05-21 18:01:40
我建议您改用dotnetCli任务。它更短、更清晰、更直接(它将产生与在控制台中执行dotnet test相同的效果)。
- task: DotNetCoreCLI@2
displayName: 'Run tests'
inputs:
command: 'test'即使在microsoft文档页面中,它们也使用DotNetCoreCLI任务。
发布于 2020-05-22 08:13:10
如果vstest任务可以在您的经典管道上成功运行。它也应该在yaml管道中工作。您可以检查代理池选择和任务的设置,以确保它们在yaml和经典管道中都是相同的。
1,您的单元测试似乎在yaml管道中的Vs2017上运行。您可以尝试在windows-latest代理上运行管道以在Vs2019上运行测试。
如果你的管道必须在特定的代理上运行。您可以使用VisualStudioTestPlatformInstaller任务下载最新版本。然后为Vstest任务设置vsTestVersion: toolsInstaller。见下文:
- task: VisualStudioTestPlatformInstaller@1
- task: VSTest@2
displayName: 'Test'
inputs:
testAssemblyVer2: '**\bin\**\Tests.dll'
...
...
vsTestVersion: toolsInstaller2,您还可以在这个线程中查看解决方案。正如它在解决方案deleting the entire solution folder, re-cloning the project中提到的那样。如果您是在您的自托管代理上运行管道的话。在克隆repo之前,可以尝试使用yaml管道中的结帐清除源文件夹。见下文:
steps:
- checkout: self
clean: true您还可以尝试将下面的codecoverage.runsettings文件添加到元素<CodeCoverage>下,以排除线程中提到的microsoft程序集。
<ModulePath>.*microsoft\.codeanalysis\.csharp\.dll$</ModulePath>
<ModulePath>.*microsoft\.codeanalysis\.csharp\.workspaces\.dll$</ModulePath>
<ModulePath>.*microsoft\.codeanalysis\.dll$</ModulePath>
<ModulePath>.*microsoft\.codeanalysis\.workspaces\.dll$</ModulePath>3、您还可以尝试将“Microsoft.NET.Test.Sdk”更新为测试项目的最新版本。
https://stackoverflow.com/questions/61936251
复制相似问题