VSTEST@2 - 错误找不到测试主机 |蔚蓝管道

VSTEST@2 - error could not find testhost | Azure Pipelines

我正在 运行在 vstest@2 任务的帮助下在 Azure 管道上测试解决方案。 Pipeline 在 4 个代理上分发测试用例,然后 运行s 它们。

任务 yaml:

  - task: VSTest@2
    inputs:
      testSelector: 'testAssemblies'
      testAssemblyVer2: |
        **/*.Tests.dll
      searchFolder: '$(System.DefaultWorkingDirectory)'
      distributionBatchType: basedOnExecutionTime
      runInParallel: true

在 运行 开始时,我收到了一堆这样的消息:

##[error]DiscoveryMessage : Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: Could not find testhost
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Hosting.DotnetTestHostManager.GetTestHostProcessStartInfo(IEnumerable`1 sources, IDictionary`2 environmentVariables, TestRunnerConnectionInfo connectionInfo)
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager.SetupChannel(IEnumerable`1 sources, String runSettings)
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyDiscoveryManager.DiscoverTests(DiscoveryCriteria discoveryCriteria, ITestDiscoveryEventsHandler2 eventHandler)

然后测试开始通过,运行更进一步。

我对此有两个问题 - 这些消息的实际含义是什么/我应该以某种方式进行干预吗?

我能否以某种方式禁用这些消息,以免它们向我的 运行 日志发送垃圾邮件?

您可以尝试以下解决方法来解决上述问题,而不是使用 **/*.Tests.dll 尝试使用 **\*test.dll

- task: VSTest@2
    inputs:
      testSelector: 'testAssemblies'
      testAssemblyVer2: |
        **\*test.dll
      searchFolder: '$(System.DefaultWorkingDirectory)'
      distributionBatchType: basedOnExecutionTime
      runInParallel: true

也基于MS DOC :

The VsTest task doesn't support running tests that target multiple target frameworks at a time as this is a limitation from the vstest platform side. If you want to run tests that belong to multiple target frameworks, you'll need multiple instances of the vstest task, one per set of dlls that target a particular framework.

有关类似问题的更多信息,请参阅以下链接: