VSTS 测试步骤找不到 xUnit 测试适配器
VSTS test step cannot find xUnit test adapter
我是 CI/CD 的新手,mm 目前正在努力让 VSTS 找到我的 xUnit 测试。我的解决方案是一个纯粹的实验,尝试隔离问题并学习。在进入我的设置和到目前为止所做的工作之前,结果是 VSTS 构建日志中的这一行:
Warning: No test is available in C:\agent\_work\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.
通过谷歌搜索消息,我将其解释为 VSTS 无法找到 xUnit 测试适配器。这是一个正确的假设吗?另外,我经常看到术语 "test adapter"、"test runner" 和 "test explorer"。 这两个词是一回事吗? 查了下this article 看来确实是一回事。 谁能解释一下?
现在,我的设置...
xUnit 测试项目是一个引用 NUget 包 xunit
和 xunit.runner.visualstudio (2.2.0)
的 .NET Core 2 class 库。测试项目还引用了一个名为 "Quotifier.Models" 的共享 class 库,其中包含经过测试的代码。
为了更容易诊断我是 运行 我 PC 上的本地(本地)构建代理。这使我能够调查文件结构。
我的构建定义的构建步骤最初是构建整个解决方案的 "Visual Studio Build"。我可以看到生成的二进制文件以
结尾
C:\agent\_work\s\Quotifier.Models.xUnit.Test\bin\Release\netcoreapp2.0
。
在二进制文件中还有 xunit.runner.visualstudio.dotnetcore.testadapter.dll
。 这是VSTS找不到的xUnit测试适配器吗?
更多谷歌搜索告诉我,要找到的测试适配器的典型位置是在 $(Build.SourcesDirectory)\packages
文件夹中,因此,这就是测试步骤的 "Path to custom test adapters" 应该设置的位置。这给了我这个日志条目:
Warning: The path 'C:\agent\_work\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 arguments":
指定了输出路径
/p:OutputPath="$(build.binariesdirectory)/$(BuildConfiguration)/test-assemblies"
.
然后我将测试步骤的 "Path to custom test adapters" 属性 设置为指向同一文件夹。这样我就回到了日志中的原始警告:
Warning: No test is available in C:\agent\_work\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
是所需的测试适配器。这个假设正确吗?
我现在没有想法,所以任何提示、链接或建议都将不胜感激。
使用 "dotnet test" 来 运行 您的 NetCore-UnitTests。
该任务称为“.NET Core”,并有一个命令下拉列表,您可以在其中 select build/restore/test 等...如果您使用的是托管代理,您还需要添加 "NET Core Tool Installer"
并且您的 xunit 包不应该在 "packages" 目录中结束。 netcore2 项目以不同方式处理 nuget-packages 并将从本地 nuget-cache
引用它们
我是 CI/CD 的新手,mm 目前正在努力让 VSTS 找到我的 xUnit 测试。我的解决方案是一个纯粹的实验,尝试隔离问题并学习。在进入我的设置和到目前为止所做的工作之前,结果是 VSTS 构建日志中的这一行:
Warning: No test is available in C:\agent\_work\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.
通过谷歌搜索消息,我将其解释为 VSTS 无法找到 xUnit 测试适配器。这是一个正确的假设吗?另外,我经常看到术语 "test adapter"、"test runner" 和 "test explorer"。 这两个词是一回事吗? 查了下this article 看来确实是一回事。 谁能解释一下?
现在,我的设置...
xUnit 测试项目是一个引用 NUget 包 xunit
和 xunit.runner.visualstudio (2.2.0)
的 .NET Core 2 class 库。测试项目还引用了一个名为 "Quotifier.Models" 的共享 class 库,其中包含经过测试的代码。
为了更容易诊断我是 运行 我 PC 上的本地(本地)构建代理。这使我能够调查文件结构。
我的构建定义的构建步骤最初是构建整个解决方案的 "Visual Studio Build"。我可以看到生成的二进制文件以
结尾C:\agent\_work\s\Quotifier.Models.xUnit.Test\bin\Release\netcoreapp2.0
。
在二进制文件中还有 xunit.runner.visualstudio.dotnetcore.testadapter.dll
。 这是VSTS找不到的xUnit测试适配器吗?
更多谷歌搜索告诉我,要找到的测试适配器的典型位置是在 $(Build.SourcesDirectory)\packages
文件夹中,因此,这就是测试步骤的 "Path to custom test adapters" 应该设置的位置。这给了我这个日志条目:
Warning: The path 'C:\agent\_work\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 arguments":
/p:OutputPath="$(build.binariesdirectory)/$(BuildConfiguration)/test-assemblies"
.
然后我将测试步骤的 "Path to custom test adapters" 属性 设置为指向同一文件夹。这样我就回到了日志中的原始警告:
Warning: No test is available in C:\agent\_work\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
是所需的测试适配器。这个假设正确吗?
我现在没有想法,所以任何提示、链接或建议都将不胜感激。
使用 "dotnet test" 来 运行 您的 NetCore-UnitTests。 该任务称为“.NET Core”,并有一个命令下拉列表,您可以在其中 select build/restore/test 等...如果您使用的是托管代理,您还需要添加 "NET Core Tool Installer"
并且您的 xunit 包不应该在 "packages" 目录中结束。 netcore2 项目以不同方式处理 nuget-packages 并将从本地 nuget-cache
引用它们