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

升级Visual Studio 17.4.0后XUnit测试无法执行问题求助

解决Visual Studio 2022 17.4.0中.NET Framework 4.8 XUnit测试无法执行的问题

问题背景

升级Visual Studio 2022到17.4.0版本后,XUnit测试可在测试资源管理器正常显示,但11个测试全部无法执行;项目构建正常,此前版本可正常运行且无报错。已尝试升级VS补丁、.NET Framework版本、XUnit版本,重启、清理重建项目,切换目标处理器架构等操作均无效。项目引用配置如下:

<ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
    <PackageReference Include="Moq" Version="4.18.2" />
    <PackageReference Include="xunit" Version="2.4.2" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="coverlet.collector" Version="3.2.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

解决步骤

  • 统一XUnit组件版本
    当前Microsoft.NET.Test.Sdk为17.4.0,xunit和xunit.runner.visualstudio版本偏低,存在兼容性匹配问题。将两者同步升级到兼容17.x SDK的最新稳定版,修改后的引用配置如下:

    <ItemGroup>
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
        <PackageReference Include="Moq" Version="4.18.2" />
        <PackageReference Include="xunit" Version="2.5.1" />
        <PackageReference Include="xunit.runner.visualstudio" Version="2.5.1">
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
            <PrivateAssets>all</PrivateAssets>
        </PackageReference>
        <PackageReference Include="coverlet.collector" Version="3.2.0">
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
            <PrivateAssets>all</PrivateAssets>
        </PackageReference>
    </ItemGroup>
    
  • 禁用测试并行执行
    在测试项目根目录新建xunit.runner.json文件,添加以下内容:

    {
        "parallelizeTestCollections": false
    }
    

    右键该文件→属性,设置“复制到输出目录”为“如果较新则复制”,避免并行执行导致的静默故障。

  • 清理测试运行器缓存
    关闭Visual Studio,删除以下目录的缓存文件:

    • %USERPROFILE%\AppData\Local\Temp\VisualStudioTestExplorerExtensions
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\17.0_*\TestStore
      重新打开VS并重建测试项目。
  • 检查测试项目输出类型
    右键测试项目→属性→应用程序,确认输出类型为类库,避免非类库类型导致测试无法触发。

  • 排查代码覆盖率工具干扰
    暂时移除coverlet.collector引用,重新运行测试。若测试可正常执行,再将coverlet.collector升级到最新版本(如6.0.0)后重新添加。

内容的提问来源于stack exchange,提问作者ddl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:15:36