【问题标题】:iOS UITests failed: IDETestOperationsObserverErrorDomain Code=13iOS UITests 失败:IDETestOperationsObserverErrorDomain Code=13
【发布时间】:2018-01-17 18:44:16
【问题描述】:

我正在为来自 Jenkins 构建脚本的 iOS 应用程序运行 AppUITests。单元测试 (AppTests) 运行良好,但 AppUITests 由于以下问题而失败。我该如何解决这个问题?

09:19:53.506 XCTRunner[22911:77924] 无法后台测试运行器 30.0s 内。 09:19:53.507 xcodebuild[22835:77541] -[IDETestOperationCoordinator testRunnerSession:initializationForUITestingDidFailWithError:] 09:19:53.507 XCTRunner[22911:77924] 调用完成。 09:19:53.507 xcodebuild[22835:77541] 测试操作失败:后台失败 测试赛跑者。 09:19:53.507 xcodebuild[22835:77541] _finishWithError:Error Domain=IDETestOperationsObserverErrorDomain Code=13 "后台测试运行失败。" UserInfo={NSLocalizedDescription=后台测试运行失败。} 取消:1

【问题讨论】:

  • 看起来在 xcode 由于超时而关闭测试之前测试无法启动模拟器,相同的管道在您的本地 mac 中运行正常吗?
  • 是的,它工作正常@u.gen
  • 我也有同样的问题,但是只有当我用SNAPSHOT_FORCE_DELETE=yes fastlane snapshot reset_simulators“删除”并重新创建所有模拟器时才会出现这个错误
  • 你是用jenkins脚本还是qb脚本运行?
  • 我正在使用 fastlane(对不起,回答迟了)

标签: ios xcode jenkins xcodebuild xcode-ui-testing


【解决方案1】:

我在我们的应用程序中遇到了同样的问题。它是由启动时显示的权限警报引起的(在本例中为 APN,但对于任何其他警报可能都是相同的)。

重现步骤

  • 使用会在启动时显示权限警报的应用
  • 确保模拟器干净(以显示警报)
  • 运行所有测试

结果

  • 应用启动、显示警报并正常运行(正常)测试
  • 但是进入 UITests 时,模拟器会一直黑屏,过一会儿,它会失败并出现以下错误:

错误域=IDETestOperationsObserverErrorDomain Code=13 "未能 后台测试运行器。

解决方案

在正常测试之前运行 UITests(只需更改 edit scheme => Test => Info 中的顺序)

注意事项:

  • 也许你必须确保,UITests 将使用XTests addUIInterruptionMonitor 方法处理警报。否则,(正常)测试可能会以同样的方式失败(没有测试这种情况)。
  • 如果您真的不想首先运行 UITest,您可以添加一个额外的 UITest 目标,该目标首先运行,并且只处理警报。然后您应该能够运行(正常)测试,然后是您的 UITest。

相关

【讨论】:

  • 使用 Xcode 9.4.1 并仅从方案中重新排列测试目标对我不起作用。实际上,xcscheme 文件中根本没有差异。以正确的顺序删除和添加测试目标使其工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 2020-04-15
  • 2020-01-21
相关资源
最近更新 更多