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

VS2022中xUnit测试无法被发现运行的问题排查

xUnit测试在VS2022中无法被发现的解决方法

核心原因

你使用的测试相关NuGet包版本过低,与Visual Studio 2022的测试发现机制不兼容。尤其是Microsoft.NET.Test.Sdk、xunit和xunit.runner.visualstudio的版本停留在旧版,未针对VS2022做适配,导致测试无法被识别。

解决步骤

1. 更新NuGet包版本

将测试项目的.csproj文件中的包引用替换为以下兼容VS2022的版本:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <IsPackable>false</IsPackable>
    <RootNamespace>DeskBooker.Web</RootNamespace>
    <Platforms>AnyCPU;x64</Platforms>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="Moq" Version="4.20.70" />
    <PackageReference Include="xunit" Version="2.6.2" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
    <PackageReference Include="coverlet.collector" Version="3.2.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\DeskBooker.Web\DeskBooker.Web.csproj" />
  </ItemGroup>

</Project>

版本说明:

  • Microsoft.NET.Test.Sdk:选择VS2022对应的17.x系列版本,确保和IDE兼容
  • xunit及xunit.runner.visualstudio:使用最新稳定版,适配VS2022的测试发现逻辑
  • Moq和coverlet.collector:同步更新到稳定版,避免依赖冲突

2. 清理并重新构建

  • 右键解决方案 → 清理解决方案
  • 删除测试项目的bin和obj文件夹
  • 右键解决方案 → 重新生成解决方案

3. 验证测试发现

打开VS2022的测试资源管理器,点击顶部的全部运行按钮,测试应该能被正常识别并执行。

额外检查点

  • 确认测试类和测试方法均为public修饰(你的代码已满足该要求)
  • 确保机器上已安装net5.0对应的.NET SDK
  • 若问题仍存在,可尝试关闭并重启VS2022,或重置测试资源管理器(测试资源管理器右上角菜单 → 重置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:16:08