VSTS测试步骤找不到xUnit测试适配器

时间:2017-11-02 08:27:53

标签: .net-core azure-pipelines xunit

我对CI / CD很新,目前正在努力让VSTS找到我的xUnit测试。我的解决方案是一个纯粹的实验,试图分离问题并学习。在进入我的设置之前到目前为止已经完成了什么,结果就是VSTS构建日志中的这一行:

Warning: No test is available in C:\agent\_work\1\s\Quotifier.Models.xUnit.Test\bin\Release\netcoreapp2.0\Quotifier.Models.xUnit.Test.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.

通过Google搜索消息,我将其解释为VSTS无法找到xUnit测试适配器。这是正确的假设吗?另外,我看到术语"测试适配器","测试运行器"和"测试资源管理器"很多。 这些条款是否相同? 签出this article后,似乎确实是同一件事。 任何人都可以澄清吗?

现在,我的设置......

xUnit测试项目是一个.NET Core 2类库,引用NUget包xunitxunit.runner.visualstudio (2.2.0)。测试项目还引用了一个名为" Quotifier.Models"的共享类库。其中包含经过测试的代码。

为了更容易诊断,我在PC上运行本地(内部)构建代理。这使我能够调查文件结构。

我的构建定义的构建步骤最初是一个" Visual Studio Build"构建整个解决方案。我可以看到生成的二进制文件最终在

C:\agent\_work\1\s\Quotifier.Models.xUnit.Test\bin\Release\netcoreapp2.0。 二进制文件中还有xunit.runner.visualstudio.dotnetcore.testadapter.dll 这是VSTS无法找到的xUnit测试适配器吗?

更多谷歌搜索告诉我,找到测试适配器的典型位置在$(Build.SourcesDirectory)\packages文件夹中,因此,测试步骤"路径是什么自定义测试适配器"应该设置为。这给了我这个日志条目:

  

Warning: The path 'C:\agent\_work\1\s\packages' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again.

我还检查了本地文件夹,实际上,xunit NUget包没有在那里结束。 任何人都可以猜到为什么?

假设xunit.runner.visualstudio.dotnetcore.testadapter.dll确实是VSTS正在寻找的测试适配器,我想我应该尝试帮助它。所以我创建了一个单独的MSBuild步骤,并通过" MSBuild参数指定了输出路径":

  

/p:OutputPath="$(build.binariesdirectory)/$(BuildConfiguration)/test-assemblies"

然后,我设置了测试步骤"自定义测试适配器的路径"属性指向同一文件夹。有了这个,我回到了日志中的原始警告:

  

Warning: No test is available in C:\agent\_work\1\b\release\test-assemblies\Quotifier.Models.xUnit.Test.dll. Make sure that installed ... bla ... bla

现在,总结一下......

  • 开箱即用的xUnit测试项目不适用于VSTS
  • xUnit NUget包不会以/ ** / packages文件夹
  • 结束
  • 我假设xunit.runner.visualstudio.dotnetcore.testadapter.dll是所需的测试适配器。这个假设是否正确?

我现在没有想法,所以任何提示,链接或建议都会受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

使用" dotnet test"运行你的NetCore-UnitTests。 该任务被称为" .NET Core"并有一个命令下拉列表,您可以在其中选择构建/恢复/测试等...您还需要添加" NET Core Tool Installer"如果您使用的是托管代理

你的xunit-package不应该最终进入" packages" -directory。 netcore2项目以不同方式处理nuget-packages,并将从本地nuget-cache

引用它们
相关问题