Azure管道错误:vstest.console进程无法连接到testhost进程

问题描述 投票:0回答:2

我正在将Azure管道转换为YAML管道。当我触发构建时,它在单元测试步骤中失败并给出如下错误

[error] vstest.console进程在90秒后无法连接到testhost进程。由于计算机运行缓慢,可能会发生这种情况,请设置环境变量VSTEST_CONNECTION_TIMEOUT以增加超时。

enter image description here

我找不到在任何地方添加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
.net-core yaml azure-pipelines vs-unit-testing-framework azure-pipelines-yaml
2个回答
0
投票

我建议您改用dotnetCli任务。它更短,更清晰,更直接(与在控制台中执行dotnet test的效果相同)

- task: DotNetCoreCLI@2
  displayName: 'Run tests'
  inputs:
    command: 'test'

甚至在microsoft documentation page中,他们也使用DotNetCoreCLI任务。


0
投票

如果vstest任务可以在您的经典管道上成功运行。它也应该在yaml管道中工作。您可以检查代理程序池选择和任务设置,以确保它们在yaml和经典管道中都相同。

1,您的单元测试似乎在yaml管道中的Vs2017上运行。您可以尝试在windows-latest代理上运行管道以在Vs2019上运行测试。

如果管道必须在特定代理上运行。您可以使用VisualStudioTestPlatformInstaller任务下载最新版本。然后将vsTestVersion: toolsInstaller设置为Vstest任务。见下文:

- task: VisualStudioTestPlatformInstaller@1

- task: VSTest@2
  displayName: 'Test'
  inputs:
    testAssemblyVer2: '**\bin\**\Tests.dll'
    ...
    ...
    vsTestVersion: toolsInstaller

2,您也可以在此thread中签出解决方案。如解决方案deleting the entire solution folder, re-cloning the project中所述。如果您在自托管代理上运行管道。您可以尝试在yaml管道中使用Checkout清理源文件夹,然后再克隆仓库。见下文:

steps:
- checkout: self 
  clean: true

您还可以尝试将以下内容添加到元素<CodeCoverage>下的codecoverage.runsettings文件中,以排除线程中提到的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'更新为测试项目的最新版本。

© www.soinside.com 2019 - 2024. All rights reserved.