VS2022下.NET8项目XUnit测试无法生成trx文件的问题求助
解决VS 2022中XUnit测试未生成指定TRX测试结果文件的问题
问题场景
我在VS 2022中开发.NET 8项目,希望每次执行XUnit.net测试时,将测试结果写入TestResults文件夹下的results.trx文件。已完成以下配置:
- 在测试项目根目录创建
test.runsettings文件,内容如下:
<?xml version="1.0" encoding="utf-8"?> <RunSettings> <ResultsDirectory>.\TestResults</ResultsDirectory> <!-- Configuration for loggers --> <LoggerRunSettings> <Loggers> <Logger friendlyName="trx" enabled="True"> <Configuration> <LogFileName>results.trx</LogFileName> </Configuration> </Logger> <Logger friendlyName="blame" enabled="True" /> </Loggers> </LoggerRunSettings> </RunSettings>
- 在测试项目的
.csproj文件中添加配置:
<PropertyGroup> <RunSettingsFilePath>$(MSBuildProjectDirectory)\test.runsettings</RunSettingsFilePath> </PropertyGroup>
但右键运行测试时,测试可正常执行却未生成results.trx文件,怀疑VS未加载自定义的runsettings文件。
解决方案
- 手动关联runsettings文件到VS测试会话
VS右键运行测试时,默认不会自动启用自定义runsettings。需手动指定:打开测试资源管理器,点击顶部工具栏的齿轮图标(设置),选择"选择设置文件",选中项目根目录的test.runsettings。之后再运行测试,配置才会生效。 - 验证配置路径与格式
检查ResultsDirectory的相对路径是否正确,可临时改用绝对路径(如C:\Projects\YourTestProject\TestResults)测试是否生成文件;同时确认LogFileName拼写无误,trx日志配置无语法错误。 - 用命令行验证配置有效性
进入测试项目目录,执行以下命令:
如果命令行能成功生成TRX文件,说明配置本身无问题,问题出在VS UI的测试运行设置上。dotnet test --settings test.runsettings - 增强.csproj配置
在项目的PropertyGroup中添加VSTestLogger配置,强制指定TRX日志输出:<PropertyGroup> <RunSettingsFilePath>$(MSBuildProjectDirectory)\test.runsettings</RunSettingsFilePath> <VSTestLogger>trx;LogFileName=results.trx</VSTestLogger> </PropertyGroup> - 清理VS缓存并重建项目
执行菜单"生成"->"清理解决方案",再重建测试项目,之后重新关联runsettings文件并运行测试,避免缓存导致配置不生效。
内容的提问来源于stack exchange,提问作者federico D'Armini
相关产品推荐
相关产品推荐

