VSTest-Task 未运行测试计划中的 .NET Core 2.1 xUnit-Tests

Seb*_*ber 5 xunit vstest azure-devops azure-pipelines-release-pipeline .net-core-2.1

我正在尝试在 VSTS 中创建一个发布管道,该管道运行我的 xUnit-tests,如Test Plan.

长话短说:我无法让它工作。

我正在使用什么:

  • Azure DevOps(以前称为 VSTS)
  • Visual Studio 测试任务 (v2.*)
  • 针对 .NET Core 2.1 的测试项目
  • xunit 2.4 与 xunit.runner.visualstudio 2.4

在 Azure DevOps 中,我定义了一个Test Plan,其中包含一个Test Suite,其中包含一个Test,其中有一个Associated Automation指向我的 xUnit 测试。我必须使用 REST API 将测试代码链接到此处Test所述。

Test我可以在 VSTest 任务的可视化设计器中选择它。

当我运行发布管道时,VSTest 任务失败并显示以下错误消息:

DiscoveryMessage : System.IO.FileNotFoundException: Unable to find tests for D:\a\r1\a\Foo.Tests.dll. Make sure test project has a nuget reference of package "Microsoft.NET.Test.Sdk" and framework version settings are appropriate. Rerun with /diag option to diagnose further.

Foo.Tests.dll 的路径是正确的,所有必需的文件也被复制。

  • 我在文件中明确指定了框架版本.runsettings(因为该选项Other console options在使用该选项时不起作用Test plan)。
  • 指定了path to custom test adapters
  • 使用Visual Studio 2017Installed by Tools Installer选项
  • 添加了.NET Core Tool installer安装正确的 .NET Core SDK
  • ...以及我能想到的任何其他设置组合。

错误信息还是一样。

有什么想法我可能会错过吗?此时,我们将非常感谢您的帮助!

Seb*_*ber 2

又过了几个小时,我们偶然发现了一个网页,其中指出您不必复制测试项目的二进制文件作为 VSTest 任务的输入,而是发布它。vstest.console.exe当您将其指向本地计算机上的二进制文件时,这永远不会出现在您的脑海中,因为它可以顺利运行。


更新:我们必须在构建管道的末尾添加发布工件任务,并使发布管道拾取已发布的工件。

在此输入图像描述