You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XCUITest报错Test runner never began executing tests如何解决

问题触发原因
  • Xcode 12.5 存在UI测试runner进程启动的原生已知bug,无代码改动的场景下会随机触发,表现为runner应用安装完成后内部可执行文件加载失败,测试进程无法绑定执行入口
  • Xcode 派生数据(DerivedData)缓存损坏,此前的测试构建残留文件和新构建的runner包发生冲突,导致系统无法识别测试可执行文件
  • 测试设备(模拟器/物理机)上残留了同名的旧runner应用进程、或者未卸载干净的历史测试包,新安装的runner包可执行文件权限被占用,无法正常启动
  • xcodebuild 命令未显式配置测试启动等待参数,Xcode 12.5版本runner启动延迟比更高版本高,默认超时阈值会提前判定测试启动失败
解决方案

1. 全链路清理残留缓存

  • 执行命令删除Xcode派生数据:rm -rf ~/Library/Developer/Xcode/DerivedData/*
  • 完全卸载测试设备上的宿主应用、Runner测试应用,重启测试设备
  • 杀掉所有后台Xcode相关进程:killall Xcode xcodebuild Simulator

2. 调整xcodebuild执行参数

新增测试启动超时配置,给runner进程预留足够的加载时间,适配Xcode 12.5的启动延迟问题,示例命令如下:

xcodebuild test -workspace YourProject.xcworkspace -scheme YourUITestScheme -destination 'platform=iOS Simulator,name=iPhone 12,OS=14.5' -test-timeouts-enabled YES -maximum-test-execution-time-allowance 300

核心新增参数为-test-timeouts-enabled YES,可根据测试包大小调整最长等待时长。

3. 物理设备专属排查步骤

  • 打开设备「设置-开发者选项」,关闭Enable UI Automation后重新开启,重启设备后再执行测试
  • 确认测试使用的开发者证书、描述文件未过期,Xcode测试目标的Signing & Capabilities配置中bundle id未和设备现有应用冲突

4. 原生bug临时规避方案

如果上述操作后问题仍随机复现,每次执行测试前新增构建清理步骤,避免新旧构建文件冲突:
xcodebuild clean -workspace YourProject.xcworkspace -scheme YourUITestScheme

内容的提问来源于stack exchange,提问作者Razvan Baraboi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:09:05