VS2017 15.5.1调试/运行C#单元测试提示未找到测试用例
解决VS2017 15.5.1升级后MSTest测试用例未被发现的问题
针对你升级Visual Studio 2017 15.5.1后,基于.NET Framework 4.6.1的C# MSTest单元测试项目出现测试用例无法被发现的问题,我整理了几个经过验证的解决步骤,你可以逐一尝试:
1. 确认测试项目框架与引用版本匹配
有时候测试项目的目标框架和测试适配器/框架的版本存在兼容性冲突,你可以:
- 右键测试项目 → 属性 → 确认目标框架是Microsoft.NET Framework 4.6.1,没有被意外修改
- 卸载测试项目,打开
.csproj文件,检查MSTest相关引用的版本是否统一,确保没有混合不同版本的引用:
如果发现有旧的本地DLL引用(比如带<PackageReference Include="MSTest.TestAdapter" Version="1.2.0" /> <PackageReference Include="MSTest.TestFramework" Version="1.2.0" />HintPath的节点),建议删除,改用NuGet包管理的方式统一引用。
2. 清理缓存并重建项目
VS的缓存文件偶尔会导致测试发现异常,执行以下操作:
- 关闭Visual Studio
- 删除测试项目下的
bin和obj文件夹 - 删除解决方案根目录下的
.vs隐藏文件夹 - 重新打开VS,先清理整个解决方案,再重建测试项目
- 打开Test Explorer,点击顶部的Run All按钮,等待测试发现完成
3. 检查测试类和方法的特性是否正确
确保你的测试代码标记了正确的MSTest特性,避免拼写或使用错误:
- 测试类必须标记
[TestClass]特性 - 测试方法必须标记
[TestMethod]特性
示例正确代码:
using Microsoft.VisualStudio.TestTools.UnitTesting; [TestClass] public class SampleTest { [TestMethod] public void TestMethod1() { // 测试逻辑 } }
4. 升级MSTest包到兼容版本
VS2017 15.5.x对MSTest的兼容性有特定要求,1.2.0版本可能存在适配问题,建议升级到更兼容的版本:
- 在NuGet包管理器中,将
MSTest.TestAdapter和MSTest.TestFramework升级到1.3.2版本(这个版本对VS2017 15.5.x兼容性较好) - 升级完成后,清理并重建项目,再次检查Test Explorer
5. 检查VS测试组件是否完整
有时候VS升级过程中测试组件可能损坏或未安装完全:
- 打开Visual Studio Installer → 修改 → 确认测试工具核心功能和**.NET桌面开发下的单元测试组件**已勾选
- 如果未勾选,添加后重新启动VS
如果以上步骤都尝试后问题仍然存在,你可以尝试创建一个全新的.NET 4.6.1 MSTest测试项目,添加简单的测试方法,看是否能被发现,以此排查是否是原有项目的配置问题。
内容的提问来源于stack exchange,提问作者Saurabh Raoot
相关产品推荐
相关产品推荐

