如何在VSTS(Vs2017)上运行和发布.NETCore Xunit测试?

Mua*_*Ali 6 .net-core azure-pipelines visual-studio-2017

我在VSTS中有两个构建步骤:

  1. 要运行测试(VSTS cmd任务):DOTNET test -xml TEST-results.xml
  2. 要发布测试结果步骤(VSTS测试发布任务):format = XUnit和上一步中的文件名

但是在我升级到VS2017后,-XML标签不再起作用了.我改变了第一步使用它:test --logger"trx; LogFileName = TEST-results.xml"

但第二步抛出错误" 无效的结果文件.请确保任务中的测试结果格式字段与文件的结果格式匹配 "

还有另一种方法可以在VSTS上运行.NetCore测试吗?或者我做错了什么?

谢谢,

Eri*_*est 8

starain-MSFT的答案将起作用,除非您希望/需要使用xunit记录器记录xunit测试.在这种情况下,你需要做两件事.

  1. https://www.nuget.org/packages/XunitXml.TestLogger/1.0.2-pre-rtm作为包参考添加到您的测试项目中,或者通过VS中的"Manage NuGet Packages",或者在csproj中添加ref手动文件,即

<PackageReference Include="xunitxml.testlogger" Version="1.0.2-pre-rtm" />

  1. 修改VSTS DOTNET测试生成步骤使用此记录器: dotnet test -a:. -l:xunit
    -a:.开关,它指定了适配器路径,仅用于CLI工具V15.0必要,在15.1可被移除(如所讨论此处).截至今天,VS2017托管队列使用的是15.0,因此您-a:.现在需要使用VSTS.在-l:xunit使用的FriendlyName,我认为这是不那么友好,因为你必须深入到对特定记录器找到它被指定属性的源代码(如看到这里的的xUnit和这里的TRX)

转换的文档-l至少可以说是参差不齐,但在vstest的github中,有一个文档讨论了测试记录器以及指向其存储库和nuget包的链接,在查看了友好名称的来源后,它会让你无论您需要哪种记录器,都可以在那里使用.如果您需要自定义记录器,那么这些是帮助您了解如何实施的好例子.

最后,您最初使用的发布步骤应该没问题,因为输出文件仍然称为TestResults.xml


sta*_*SFT 3

将“测试结果格式”更改为“发布测试的 VSTest”结果步骤/任务,它可以正确读取结果文件。