Visual Studio 2019下MSTest动态数据生成器缓存异常及清理咨询
解决Visual Studio 2019 + MSTest v3.0.2动态测试数据缓存问题
一、MSTest相关缓存位置及清理步骤
直接清理以下位置的缓存文件/文件夹,强制刷新测试数据:
- 项目本地缓存:手动删除测试项目根目录下的
bin和obj文件夹,再执行一次清理解决方案操作。 - VS用户级测试缓存:删除以下路径的内容(注意
<随机字符>是VS安装生成的唯一标识,比如类似abc123def的字符串):%LOCALAPPDATA%\Microsoft\VisualStudio\16.0_<随机字符>\TestStore:存储测试发现结果的核心缓存目录%LOCALAPPDATA%\Microsoft\VisualStudio\16.0_<随机字符>\ComponentModelCache:组件模型缓存,可能干扰测试发现逻辑%TEMP%\VisualStudioTestExplorerExtensions:测试资源管理器扩展的临时缓存
- NuGet包缓存:删除
%USERPROFILE%\.nuget\packages\mstest.testadapter和%USERPROFILE%\.nuget\packages\mstest.testframework下对应v3.0.2版本的文件夹,之后重新还原NuGet包。
二、强制刷新测试发现的额外操作
做完缓存清理后,执行这些操作确保测试资源管理器重新识别测试用例:
- 在Test Explorer界面,点击「重新运行所有测试」旁的下拉箭头,选择「清理测试运行」
- 打开Visual Studio 2019的开发者命令提示符,执行命令强制重新发现测试:
vstest.console.exe /InIsolation /UseVsixExtensions:true <你的测试项目路径>\bin\Debug\YourTestProject.dll - 右键测试项目,选择「卸载项目」,之后再右键选择「重新加载项目」
三、针对[DynamicData]生成器的补充排查
如果上述操作后仍存在断点不命中或新增用例不显示的问题,检查:
- 确认
[DynamicData]标记的生成器方法是public static修饰的,返回类型为IEnumerable<object[]>或兼容的可枚举类型 - 在生成器方法开头添加一行无意义代码(比如
var temp = 0;),重新编译后触发VS重新识别该方法
内容的提问来源于stack exchange,提问作者AlainD
相关产品推荐
相关产品推荐

