如何为.NET Core xUnit项目生成标准xUnit v2格式测试结果XML文件
问题原因
你当前使用--logger trx参数调用的是dotnet test内置的TRX格式日志器,生成的是微软VSTest标准的测试报告格式,和你需要的xUnit原生v2 XML格式完全不兼容,仅仅修改文件后缀不会改变文件内部结构。
解决步骤
不需要使用受限的xunit.runner.console工具,直接通过安装xUnit官方适配dotnet test的日志扩展包即可解决:
- 给你的测试项目安装
XunitXml.TestLoggerNuGet包,可直接在测试项目根目录执行以下命令安装:
dotnet add package XunitXml.TestLogger
也可以通过Visual Studio的NuGet包管理器搜索安装。
2. 替换原来的测试执行命令,将logger参数指定为xunit即可:
- 基础生成命令:
dotnet test --logger:xunit
- 如需指定输出文件名:
dotnet test --logger:"xunit;LogFilePath=TestOutputResults.xml"
- 你原有的带过滤条件的命令修改后为:
dotnet test --filter FullyQualifiedName~XUnitTestProject1.TestClass1.Test1 --logger:"xunit;LogFilePath=TestOutputResults.xml"
- 生成的标准xUnit v2 XML文件默认会输出到测试项目的
TestResults目录下,完全符合你给出的xUnit官方格式标准,可直接用于导入Jenkins、Xray等工具,也可直接用于自定义XSL-T样式表转换生成HTML报告。
补充说明
如果公司安全策略限制无法安装额外NuGet包,也可查找TRX格式转xUnit v2格式的转换脚本做后置处理,不过上述方案是最直接无额外转换成本的方案。
内容的提问来源于stack exchange,提问作者Stephen B
相关产品推荐
相关产品推荐

