Visual Studio 2017(15.6.4版本)无法运行全部XUnit测试求助
我来帮你排查VS2017 15.6.4无法运行全部XUnit测试的问题,结合你描述的“能在TestExplorer看到测试用例但运行异常、日志截断”的情况,试试下面这些针对性方案:
排查VS2017 15.6.4 XUnit测试运行不全的解决方案
1. 校验XUnit与测试适配器版本兼容性
版本不匹配是这类问题的高发原因,尤其是旧版本VS:
- 确保项目中
xunit和xunit.runner.visualstudio的版本完全一致,比如都使用适配VS2017的稳定版2.4.1 - 可以通过NuGet包管理器更新,或者直接修改项目文件锁定版本:
<PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" PrivateAssets="all" />
2. 清理重建解决方案消除缓存干扰
缓存文件损坏可能导致测试运行异常:
- 点击VS顶部菜单「生成」→「清理解决方案」
- 手动删除项目目录下的
bin和obj文件夹 - 最后执行「重建解决方案」,再重新运行测试
3. 调整测试运行设置
运行配置不匹配也会引发问题:
- 打开TestExplorer右上角的齿轮图标(设置),确认「运行测试的架构」和项目目标架构一致(比如同为x64或x86)
- 暂时关闭「并行运行测试」选项,部分场景下并行执行会导致测试中断或不完整
4. 获取完整测试日志定位根因
你提供的日志被截断了,完整日志才能帮你找到问题:
- 打开VS的「输出」窗口,在下拉菜单中选择「测试」输出源
- 重新运行测试,复制完整的日志内容,重点查看是否有测试加载失败、依赖缺失、未捕获异常等错误提示
5. 修复或更新VS安装
旧版本VS可能存在组件损坏:
- 打开Visual Studio Installer,选择「修改」,勾选「测试工具」相关组件后执行修复
- 建议直接将VS更新到15.9.x的最新补丁版本(15.6.4版本较旧,官方修复了不少测试相关的bug)
6. 逐步验证测试范围
先缩小测试范围排查问题:
- 单独运行日志中提到的
Lebara.Remittance.Test.ServiceImplementation.RiskEngineServiceTest.ShouldTest方法,看是否能正常执行- 如果单个测试失败,检查该测试代码是否有死循环、未处理异常,或依赖的服务/资源无法访问
- 如果单个测试正常,再尝试运行少量测试(10个以内),逐步排查是否是测试数量过多导致的超时或资源耗尽
内容的提问来源于stack exchange,提问作者Rostyslav Fedyk
相关产品推荐
相关产品推荐

