Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core VSTS测试步骤找不到xUnit测试适配器_.net Core_Azure Pipelines_Xunit - Fatal编程技术网

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

.net core VSTS测试步骤找不到xUnit测试适配器,.net-core,azure-pipelines,xunit,.net Core,Azure Pipelines,Xunit,我对CI/CD非常陌生,mm目前正努力让VST找到我的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

我对CI/CD非常陌生,mm目前正努力让VST找到我的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.
通过谷歌搜索消息,我将其解释为VST无法找到xUnit测试适配器。这是正确的假设吗?此外,我还经常看到术语“测试适配器”、“测试运行程序”和“测试资源管理器”这些术语是同一件事吗?签出后,它们似乎确实是同一件事有人能澄清吗?

现在,对于我的设置

xUnit测试项目是一个.NET Core 2类库,引用NUget软件包
xUnit
xUnit.runner.visualstudio(2.2.0)
。测试项目还引用了一个名为“quotizer.Models”的共享类库,其中包含测试代码

为了便于诊断,我正在电脑上运行一个本地(on-prem)构建代理。这使我能够调查文件结构

我的构建定义的构建步骤最初是构建整个解决方案的“VisualStudio构建”。我可以看到生成的二进制文件以

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

更多的谷歌搜索告诉我,测试适配器通常位于
$(Build.SourcesDirectory)\packages
文件夹中,因此,这就是测试步骤的“自定义测试适配器路径”应该设置的位置。这给了我这个日志条目:

警告:“TestAdapterPath”中指定的路径“C:\agent\\u work\1\s\packages”不包含任何测试适配器,请提供有效路径,然后重试。

我还检查了这个本地文件夹,事实上,xunit NUget包并没有在那里结束有人能猜出原因吗?

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

/p:OutputPath=“$(build.binariesdirectory)/$(BuildConfiguration)/测试程序集”

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

警告:在C:\agent\\u work\1\b\release\test assemblies\quotier.Models.xUnit.test.dll中没有可用的测试。确保已安装。。。布拉。。。bla

现在,总结一下

  • 开箱即用运行xUnit测试项目不适用于VST
  • xUnit NUget包不会在/**/packages文件夹中结束
  • 我假设
    xunit.runner.visualstudio.dotnetcore.testadapter.dll
    是所需的测试适配器。这个假设正确吗
我现在没有主意了,所以任何提示、链接或建议都将不胜感激。

使用“dotnet测试”运行您的NetCore单元测试。 该任务称为“.NET Core”,有一个命令下拉列表,您可以在其中选择build/restore/test等。。。如果您使用的是托管代理,还需要添加“NET Core工具安装程序”


并且您的xunit包不应该以“packages”-目录结束。netcore2项目以不同的方式处理nuget包,并将从本地nuget缓存引用它们

使用“dotnet测试”运行NetCore单元测试。 该任务称为“.NET Core”,有一个命令下拉列表,您可以在其中选择build/restore/test等。。。如果您使用的是托管代理,还需要添加“NET Core工具安装程序”


并且您的xunit包不应该以“packages”-目录结束。netcore2项目以不同的方式处理nuget包,并将从本地nuget缓存中引用它们

您可以使用VST来实现。您是使用“VSTEST”-任务来运行任务还是使用“dotnet测试”?如果测试是netcore2项目,那么您应该使用“dotnet test”运行测试,并且您的xunit包不应该最终出现在“packages”-目录中。netcore2项目以不同的方式处理nuget包,并将从本地nuget缓存引用它们。我找不到名为“dotnet测试”的测试步骤。我还检查了VSTS“市场”,但仍然没有这样的步骤可用。在哪里可以找到该步骤?该任务称为“.NET Core”,并且有一个命令下拉列表,您可以在其中选择build/restore/test等。。。如果您使用的是托管代理,那么您还需要添加“NET Core Tool Installer”来完成dotnet测试步骤!它现在找到了测试,我可以看到它们在日志中传递。继续写一个回复,这样我就可以把它标记为答案。:-)还有:有没有一种方法可以产生测试和代码覆盖率结果?我尝试添加参数--results directory$(Build.SourcesDirectory)\TestResults,但没有创建这样的目录,也没有使用结果填充这样的目录。可以使用VST进行此操作。您是使用“VSTEST”-任务来运行任务还是使用“dotnet测试”?如果测试是netcore2项目,那么您应该使用“dotnet test”运行测试,并且您的xunit包不应该最终出现在“packages”-目录中。netcore2项目以不同的方式处理nuget包,并将从本地nuget缓存引用它们。我找不到名为“dotnet测试”的测试步骤。我还检查了VSTS“市场”,但仍然没有这样的步骤可用。在哪里可以找到该步骤?该任务称为“.NET Core”,并且有一个命令下拉列表,您可以在其中选择build/restore/test等。。。如果您使用的是托管代理,那么您还需要添加“NET Core Tool Installer”来完成dotnet测试步骤!它现在可以找到测试,我可以看到它们