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

Visual Studio 2022中MSTest单元测试无法被Test Explorer识别的问题

MSTest测试在Visual Studio Test Explorer中无法发现的问题排查

问题描述

  • 使用Visual Studio 2022 17.6.2版本,解决方案为纯桌面项目(包含WPF、控制台及类库项目,无Web相关功能)
  • 此前正常运行的MSTest单元测试,如今在Test Explorer中显示但无法运行;构建时Test Explorer提示每个项目均未找到测试
  • 已尝试的操作:
    • 取消勾选“从C#和Visual Basic .NET源文件实时发现测试”后,测试不再显示于Test Explorer,但“未找到测试”提示仍存在
    • 重装3个相关NuGet包后警告数降至0,但提示未改变
    • 添加Microsoft.TestPlatform.ObjectModel包无效果
  • 命令行测试结果:
    • 执行mstest /testcontainer:"[].dll" /nologo时,提示无法加载Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip程序集,事件查看器显示无法找到注册表项HKEY_LOCAL_MACHINE\EnterpriseTools\QualityTools\TestTypes
    • 执行vstest.console.exe "[].dll"可正常获取测试结果

问题原因及解决方案

1. Test Explorer无法发现测试的核心原因

Test Explorer的测试发现机制与vstest.console.exe存在差异,你的问题大概率是Visual Studio测试组件注册异常,或项目依赖的测试NuGet包与本地测试平台版本不匹配导致的。

2. 针对性修复步骤

步骤1:重置Visual Studio测试组件

  1. 打开Visual Studio Installer,选中你的VS 2022 17.6.2实例,点击“修改”
  2. 进入“单个组件”页面,找到“测试工具”分类:
    • 取消勾选“MSTest测试框架”和“Visual Studio测试平台”,点击“修改”完成卸载
    • 卸载完成后重新勾选这两个组件,再次点击“修改”安装
  3. 重启Visual Studio,执行Build > Clean Solution清理解决方案后重新构建

步骤2:统一测试NuGet包版本

确保所有测试项目的以下NuGet包版本一致,且匹配VS 2022 17.6.x系列对应版本:

  • MSTest.TestAdapter
  • MSTest.TestFramework
  • Microsoft.NET.Test.Sdk
    卸载现有版本后重新安装对应版本,避免版本冲突。

步骤3:消除mstest.exe报错(可选)

由于你的项目无Web功能,Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip属于Web负载测试组件,与当前问题无关,可通过以下方式消除报错:

  1. 打开Visual Studio Installer,移除“Web性能和负载测试工具”组件
  2. 备份注册表后,删除HKEY_LOCAL_MACHINE\EnterpriseTools\QualityTools\TestTypes相关项

3. 事件查看器消息的重要性

该注册表项缺失仅影响旧版mstest.exe的Web负载测试功能,而Test Explorer和vstest.console.exe使用的新版测试平台不依赖此注册表项,因此该消息对你的桌面项目测试无实际影响,无需专门修复,移除Web负载测试组件后即可消除该报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:07:02