【问题标题】:XCTests failing to launch app in simulator intermittentlyXCTests 无法在模拟器中间歇性地启动应用程序
【发布时间】:2017-06-11 21:18:53
【问题描述】:

有没有人经历过并修复过:

XCTest 间歇性地无法在模拟器中启动应用程序以进行 UI 测试 (XCUI)。 我正在通过 fastlane,每次测试运行似乎都失败了不同的测试。

OSX:10.12.3 iOS模拟器:10.0 Xcode 8.2.1 快车道 2.11.0

尝试通过在我的测试中在设置和启动之间添加 3 秒的睡眠来修复它,但它仍然出现,可能不那么频繁但仍然......

UI 测试失败 - 尝试启动失败 : 错误域=FBSOpenApplicationServiceErrorDomain 代码=1“请求 打开“no.something.bb.debug”失败。” UserInfo={NSLocalizedDescription=打开请求 "no.something.bb.debug" 失败。, NSLocalizedFailureReason=请求 被服务委托 (SBMainWorkspace) 拒绝,原因是:忙 (“应用程序“no.something.bb.debug”正在安装或卸载, 并且无法启动”)., BSErrorCodeDescription=RequestDenied, NSUnderlyingError=0x6080002598f0 {错误 域=FBSOpenApplicationErrorDomain 代码=6 "应用程序 “no.something.bb.debug”正在安装或卸载,不能 已启动。” UserInfo={BSErrorCodeDescription=忙碌, NSLocalizedFailureReason=应用程序“no.something.bb.debug”是 安装或卸载,无法启动。}}}

【问题讨论】:

  • 当您从 Xcode 运行而不是直接从 Fastlane 运行时,您的 UI 测试是否有效?
  • @HardikDG 在我的例子中,使用 XCode 在本地机器上的测试总是成功的,但是当使用 XCode 服务器在 Mac Mini 上运行时,每个测试都有大约 3% 的机会失败。因为我们有超过 200 个 UI 测试,所以服务器上的构建几乎总是会失败。 (我们在 2 周内成功构建了 1 个)
  • 将机器升级到 SSD 并允许 5 次失败消除了大部分错误,我们仍然有时会看到它们,但不那么频繁......(只允许 5 次尝试没有帮助,但升级的组合+重试)。

标签: ios xcode xctest fastlane


【解决方案1】:

我遇到了同样的问题。我发现有一个 rader 对此开放。在 cmets 中,我发现了一个我在重试函数中实现的技巧。

arguments 数组是一个枚举值数组,其中基本类型为 String。我将它用于应用程序参数。

不幸的是,这还没有完全证明。在我的例子中,失败的数量大大减少了,但并没有消失。

var app: XCUIApplication = XCUIApplication()
public func tryLaunch<T>(_ arguments: [T], _ counter: Int = 10) where T: RawRepresentable {
    sleep(3)
    XCUIApplication().terminate()
    sleep(3)

    app = XCUIApplication()
    app.launchArguments = arguments.map { $0.rawValue as! String }
    app.launch()
    sleep(3)
    if !app.exists && counter > 0 {
        tryLaunch(arguments, counter - 1)
    }
}

上面的函数包含在https://github.com/evermeer/UITestHelper

【讨论】:

【解决方案2】:

在玩过之后,我们发现如果我们运行有限的测试用例,这个错误就会大大减少。您可以在https://blog.talentica.com/2017/04/04/use-xcode-8-with-jenkins/找到更多详细信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多