OSX 12.3下使用Fastlane、Scan执行Xcode测试随机触发测试运行器启动后未执行用例报错
Fastlane Scan执行iOS自动化测试随机失败问题排查
常见故障表现
在搭载Xcode的CI执行节点上,通过Fastlane结合Scan组件执行测试任务时,会随机性触发测试失败,固定报错内容为:
Testing failed: Project_UnitTests: The test runner encountered an error (Test runner never began executing tests after launching. If you believe this error represents a bug, please attach the result bundle at DerivedData/Logs/Test/Run-Project_System-2021.04.08_02-00-23-+0200.xcresult) ** TEST FAILED ** ERROR [2021-04-08 03:01:14.15]: Exit status: 65
此前不少遇到同类问题的研发,针对Test runner never began executing tests after launching报错检索了大量公开资料,始终没有找到明确的诱因说明,大家普遍有一个共同疑问:这个随机报错的出现,是否和同一台机器上并行执行多组构建任务的场景有关?
根因定位结论
经过全链路排查验证,最终确认故障的核心原因是:同一执行节点上的两组并行构建任务,同时抢占占用了同一个模拟器资源。测试运行器启动后无法独占获取模拟器的运行控制权,整个流程卡在初始化阶段无法推进,最终抛出“测试运行器启动后未开始执行测试”的错误。
落地解决效果
团队后续在Jenkins流水线中新增自动化逻辑,为每一次构建任务自动生成专属的独立测试设备,从流程机制上彻底避免多任务抢占同一模拟器资源的问题。该机制上线后,同类随机测试失败问题被彻底解决。
内容的提问来源于stack exchange,提问作者MrDjToto
相关产品推荐
相关产品推荐

