如何 运行 并在 VSTS (Vs2017) 上发布 .NETCore Xunit 测试?
How to run and publish .NETCore Xunit tests on VSTS (Vs2017)?
我在 VSTS 中有两个构建步骤:
- 到 运行 测试(VSTS cmd 任务):DOTNET 测试 -xml TEST-results.xml
- 发布测试结果步骤(VSTS 测试发布任务):format=XUnit 和上一步的文件名
但是在我升级到 VS2017 之后,-XML 标签不再起作用了。我改变了第一步来使用这个:
测试 --logger "trx;LogFileName=TEST-results.xml"
但第二步抛出错误“无效的结果文件。请确保任务中的测试结果格式字段与文件的结果格式匹配”
还有其他方法可以 运行 .NetCore 在 VSTS 上进行测试吗?还是我做错了什么?
谢谢,
将 "Test Result Format" 更改为 "VSTest of Publish Test" 结果 step/task,它会正确读取结果文件。
starain-MSFT 的答案将有效,除非您 want/need 使用 xunit 记录器记录 xunit 测试。在这种情况下,您需要做两件事。
- 将 https://www.nuget.org/packages/XunitXml.TestLogger/1.0.2-pre-rtm 作为包 ref 添加到您的 test 项目,通过 'Manage NuGet Packages' 在 VS 中,或通过手动将 ref 添加到您的 csproj 文件中,即
<PackageReference Include="xunitxml.testlogger" Version="1.0.2-pre-rtm" />
- 修改 VSTS dotnet 测试构建步骤以使用此记录器:
dotnet test -a:. -l:xunit
指定适配器路径的 -a:.
开关仅对于 CLI 工具 V15.0 是必需的,在 15.1 中可以删除(如讨论的 here)。截至今天,VS2017 托管队列使用的是 15.0,因此您现在需要 VSTS 上的 -a:.
。
-l:xunit
使用友好名称,我认为这不是那么友好,因为您必须深入研究特定记录器的源代码才能找到指定它的属性(如 here for xunit and here for trx 所示)
-l
开关的文档至少可以说是参差不齐,但在 vstest 的 github 中,有一个 document 讨论了测试记录器和它们的链接存储库和 nuget 包,在您查看友好名称的源代码后,它们可以帮助您找到所需的任何记录器。如果您需要自定义记录器,这些都是很好的示例,可以帮助您理解如何实现。
最后,你原来使用的发布步骤应该没问题,因为输出文件仍然叫TestResults.xml
使用 dotnet xunit
而不是 dotnet test
。参见 Getting Started with .NET Core。
我在 VSTS 中有两个构建步骤:
- 到 运行 测试(VSTS cmd 任务):DOTNET 测试 -xml TEST-results.xml
- 发布测试结果步骤(VSTS 测试发布任务):format=XUnit 和上一步的文件名
但是在我升级到 VS2017 之后,-XML 标签不再起作用了。我改变了第一步来使用这个: 测试 --logger "trx;LogFileName=TEST-results.xml"
但第二步抛出错误“无效的结果文件。请确保任务中的测试结果格式字段与文件的结果格式匹配”
还有其他方法可以 运行 .NetCore 在 VSTS 上进行测试吗?还是我做错了什么?
谢谢,
将 "Test Result Format" 更改为 "VSTest of Publish Test" 结果 step/task,它会正确读取结果文件。
starain-MSFT 的答案将有效,除非您 want/need 使用 xunit 记录器记录 xunit 测试。在这种情况下,您需要做两件事。
- 将 https://www.nuget.org/packages/XunitXml.TestLogger/1.0.2-pre-rtm 作为包 ref 添加到您的 test 项目,通过 'Manage NuGet Packages' 在 VS 中,或通过手动将 ref 添加到您的 csproj 文件中,即
<PackageReference Include="xunitxml.testlogger" Version="1.0.2-pre-rtm" />
- 修改 VSTS dotnet 测试构建步骤以使用此记录器:
dotnet test -a:. -l:xunit
指定适配器路径的-a:.
开关仅对于 CLI 工具 V15.0 是必需的,在 15.1 中可以删除(如讨论的 here)。截至今天,VS2017 托管队列使用的是 15.0,因此您现在需要 VSTS 上的-a:.
。-l:xunit
使用友好名称,我认为这不是那么友好,因为您必须深入研究特定记录器的源代码才能找到指定它的属性(如 here for xunit and here for trx 所示)
-l
开关的文档至少可以说是参差不齐,但在 vstest 的 github 中,有一个 document 讨论了测试记录器和它们的链接存储库和 nuget 包,在您查看友好名称的源代码后,它们可以帮助您找到所需的任何记录器。如果您需要自定义记录器,这些都是很好的示例,可以帮助您理解如何实现。
最后,你原来使用的发布步骤应该没问题,因为输出文件仍然叫TestResults.xml
使用 dotnet xunit
而不是 dotnet test
。参见 Getting Started with .NET Core。