如何在 Azure 发布管道中使用 Linux 代理 运行 vstest?

How to run vstest using Linux agent in azure Release pipeline?

问题陈述: 我有用 .NetCore 编写的 specflow 测试,用于 运行 基于 windows 的代理。现在我需要在 linux 代理中 运行 这些测试。

我使用构建管道和基于 windows 的代理来构建工件。然后在发布管道中,我添加了 vstest 任务和 Ubuntu 代理,如下所示

代理池: Azure Pipelines

代理规格: Ubuntu 20.04

当我 运行 流水线时,vstest 任务给出如下错误

此任务仅在 Windows 代理上受支持,不能在其他平台上使用

如何解决这个问题?

您不能在 Linux 上使用 vstest。 vstest 要求安装 Visual Studio 或安装 VS 测试平台。

如果你想使用 vstest 你可以 change the Agent Specification 到 Windows。

有一种变通方法可以实现这一点。

添加 dotnet 测试任务并将命令更改为 'custom',而不是将测试和自定义命令更改为 'vstest'。配置如下所示

steps:
- task: DotNetCoreCLI@2
  displayName: 'dotnet custom'
  inputs:
    command: custom
    projects: '**/Tests.dll'
    custom: vstest
    arguments: '--logger:trx;logfilename=TEST.xml'
  timeoutInMinutes: 120