iOS UITests失败:IDETestOperationsObserverErrorDomain Code = 13

Saz*_*han 4 xcode xcodebuild ios jenkins xcode-ui-testing

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

09:19:53.506 XCTRunner [22911:77924]无法在30.0秒内进行后台测试跑步.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:错误Domain = IDETestOperationsObserverErrorDomain Code = 13"无法对后台测试跑步者. "UserInfo = {NSLocalizedDescription =无法进行后台测试跑步者.} didCancel:1

d4R*_*4Rk 5

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

重现步骤

  • 使用应用程序,它将在启动时显示权限警报
  • 确保模拟器干净(为了显示警报)
  • 运行所有测试

结果

  • 应用程序启动,显示警报并运行(正常)测试就好了
  • 但是当来到UITests时,模拟器将保持黑色并且在一段时间后,它会因以下错误而失败:

错误域= IDETestOperationsObserverErrorDomain代码= 13"无法进行后台测试运行器.

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

笔记:

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

有关