You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022下.NET8项目XUnit测试无法生成trx文件的问题求助

解决VS 2022中XUnit测试未生成指定TRX测试结果文件的问题

问题场景

我在VS 2022中开发.NET 8项目,希望每次执行XUnit.net测试时,将测试结果写入TestResults文件夹下的results.trx文件。已完成以下配置:

  1. 在测试项目根目录创建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>
  1. 在测试项目的.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日志配置无语法错误。
  • 用命令行验证配置有效性
    进入测试项目目录,执行以下命令:
    dotnet test --settings test.runsettings
    
    如果命令行能成功生成TRX文件,说明配置本身无问题,问题出在VS UI的测试运行设置上。
  • 增强.csproj配置
    在项目的PropertyGroup中添加VSTestLogger配置,强制指定TRX日志输出:
    <PropertyGroup>
      <RunSettingsFilePath>$(MSBuildProjectDirectory)\test.runsettings</RunSettingsFilePath>
      <VSTestLogger>trx;LogFileName=results.trx</VSTestLogger>
    </PropertyGroup>
    
  • 清理VS缓存并重建项目
    执行菜单"生成"->"清理解决方案",再重建测试项目,之后重新关联runsettings文件并运行测试,避免缓存导致配置不生效。

内容的提问来源于stack exchange,提问作者federico D'Armini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:54:50