Visual Studio测试应用配置咨询及单元测试执行失败问题排查
看起来你遇到的问题和测试宿主进程的版本差异直接相关——testhost.x86.exe是Visual Studio 2017后期更新引入的新测试宿主,而vstest.executionengine.x86.exe是旧版的测试执行引擎。这种进程差异通常由VS更新程度、项目配置或测试框架依赖不一致导致,给你几个实用的排查方向:
核对VS 2017的具体版本
先打开VS的「帮助」→「关于Microsoft Visual Studio」,对比你和同事的VS版本号。testhost是VS 2017 Update 1及以后版本默认启用的新宿主,如果你的VS版本比同事新,可能项目配置没跟上新宿主的要求;反之如果你的版本更旧却出现testhost,可能是NuGet包强制引入了新宿主。检查测试项目的框架和依赖配置
右键测试项目→「属性」,确认目标.NET框架版本和同事完全一致;再查看NuGet包,重点检查Microsoft.TestPlatform.TestHost、MSTest.TestAdapter这类测试相关包的版本,确保和同事的匹配。如果你的项目安装了较新的TestHost包,会强制使用testhost进程,而同事的项目可能依赖旧适配器,仍调用旧引擎。强制切换到旧测试执行引擎
可以尝试在测试项目的.csproj文件中添加以下配置,强制使用旧引擎:<PropertyGroup> <UseLegacyVSTestExecutionEngine>true</UseLegacyVSTestExecutionEngine> </PropertyGroup>保存后清理并重建项目,再运行测试,看看是否会切换到
vstest.executionengine.x86.exe,同时测试能否正常执行。清理项目缓存
执行「生成」→「清理解决方案」,手动删除测试项目的bin和obj文件夹,然后重新生成整个解决方案。有时候残留的旧编译文件会干扰测试宿主的加载逻辑。深挖日志中的错误细节
除了首行的进程差异,仔细查看Debug日志后续内容,有没有出现dll缺失、权限报错、测试框架初始化失败这类具体提示——这些细节往往能直接定位到问题根源。
内容的提问来源于stack exchange,提问作者Dominique

