Visual Studio无法运行所有测试,报TestCaseFilter格式错误缺失|或&运算符
排查解决步骤
- 检查测试名称特殊字符
全量运行时VS会自动将所有测试的FullyQualifiedName用|拼接生成筛选器,只要任意一个测试的方法名、类名、命名空间中包含|、&、=、括号、未闭合的引号等特殊字符,就会破坏整个筛选器的语法结构。可全局搜索所有测试相关命名,清理或转义特殊字符后重试。 - 清理测试缓存
关闭VS后删除以下缓存内容,再重启VS重新生成解决方案运行测试:- 解决方案根目录下的
.vs隐藏文件夹 - 所有测试项目的
bin、obj目录 - 系统临时目录下的
%TEMP%\VisualStudioTestExplorerExtensions文件夹
- 解决方案根目录下的
- 检查手动配置的筛选规则
- 打开测试资源管理器,清空顶部搜索框内的所有残留筛选条件
- 若项目使用了
.runsettings配置文件,检查<TestCaseFilter>节点是否存在语法错误,无特殊需求可临时移除该节点后测试
- 统一测试项目配置
提供的日志中测试发现阶段存在程序集加载警告,需确认:- 所有测试项目的目标框架、运行平台(x86/x64/AnyCPU)配置一致
- 所有测试项目引用的
Microsoft.VisualStudio.TestTools.UnitTesting包版本统一
- 定位异常测试项
可以通过vstest.console.exe手动拼接筛选器逐步排查:
逐步增加测试方法到筛选条件中,复现报错即可定位到导致语法错误的特定测试项。vstest.console.exe 你的测试程序集路径.dll /TestCaseFilter:"FullyQualifiedName=测试方法1|FullyQualifiedName=测试方法2"
内容的提问来源于stack exchange,提问作者Francis Liu
相关产品推荐
相关产品推荐

