VSTest-Task未运行来自测试计划的.NET Core 2.1 xUnit-Test

时间:2018-10-01 10:06:08

标签: azure-devops xunit azure-pipelines-release-pipeline vstest .net-core-2.1

我试图在VSTS中创建一个发布管道,该管道运行Test Plan中指定的xUnit测试。

长话短说:我无法正常工作。

我正在使用什么:

  • 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包含一个指向我的xUnit测试的Associated Automation。 我必须使用REST API,按照here所述将测试代码链接到Test

我可以在视觉设计器中为VSTest任务选择Test

当我运行发布管道时,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
  • ...以及我能想到的其他设置组合。

错误消息仍然相同。

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

1 个答案:

答案 0 :(得分:2)

再过几个小时,我们偶然发现了一个网页,该网页指出您不必复制测试项目的二进制文件作为VSTest任务的输入,而是发布它。当您将vstest.console.exe指向本地计算机上的二进制文件时,它运行得很顺利。


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

enter image description here