VS2017中单元测试无法运行,请求技术排查支持
VS2017 MSTest测试发现失败:程序集名称或代码库无效(错误0x80131047)
问题详情
[4/5/2018 12:10:19 PM Informational] ------ 测试运行开始 ------
[4/5/2018 12:10:19 PM Warning] [MSTest][Discovery][C:path\bin\Debug\FeatureFlags.API.Tests.dll] 给定的程序集名称或代码库无效。(异常来自HRESULT: 0x80131047)
[4/5/2018 12:10:19 PM Warning] C:path\bin\Debug\FeatureFlags.API.Tests.dll中无可用测试,请确保测试发现器和执行器已注册,且平台和框架...
解决办法(亲测有效)
我之前在VS2017里碰到过一模一样的问题,试了下面这些步骤后解决了,你可以挨个试试:
- 对齐框架与平台配置:右键测试项目→属性,先看「应用程序」标签页的目标框架,必须和你要测试的项目完全一致(比如都是.NET Framework 4.7.2);再切到「生成」标签页,确认平台目标(x86/x64/Any CPU)和当前解决方案的平台设置匹配,平台不兼容是最常见的触发原因。
- 彻底清理重建项目:先点菜单栏的「生成→清理解决方案」,然后手动删掉测试项目下的
bin和obj文件夹(自动清理有时候会留残留),最后重新生成整个解决方案,再尝试运行测试。 - 重置测试组件配置:以管理员身份打开VS的命令提示符,执行这条命令重置测试发现器和执行器:
嫌麻烦的话,也可以在VS里切换一下测试的处理器架构(路径:测试→测试设置→选择默认处理器架构),来回切一次就能触发配置刷新。vstest.console.exe /ResetSettings - 更新MSTest相关NuGet包:打开NuGet包管理器,把测试项目里的
MSTest.TestAdapter和MSTest.TestFramework更新到兼容VS2017的最新稳定版本,旧版本的包经常会有适配问题。 - 检查输出路径是否合规:确认测试项目的输出路径里没有中文、空格或者特殊符号,尽量用短一点的纯英文路径,过长或特殊的路径会导致程序集加载失败,触发这个错误。
内容的提问来源于stack exchange,提问作者Islam Hamed
相关产品推荐
相关产品推荐

