XCTests未能在模拟器启动应用间歇

问题描述:

有没有人有经验和固定的:XCTests未能在模拟器启动应用间歇

XCtests没有间断在模拟器UI测试(XCUI)推出的应用程序。 我正在运行fastlane,不同的测试似乎无法通过每次测试。

OSX:10.12.3 的iOS模拟器:10.0 的XCode 8.2.1 FASTLANE 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” 是 安装或卸载,并不能发动。}}}

+0

找到更多的细节是否你的UI测试工作,当你在Xcode中运行它,而不是直接从FASTLANE运行呢? – HardikDG

+0

@HardikDG在我的情况下使用的XCode总是成功在本地机器上测试,但使用的XCode服务器上的Mac Mini的运行时,每个测试有大约3%的机会,它就会失败。由于我们有超过200个UI测试,所以在服务器上的构建几乎总是失败。 (我们在2周1个成功的版本) –

+0

机器升级到SSD并允许5个故障去除大部分错误,有时仍然会我们看到他们,但不是经常...(只允许5次尝试没有帮助,但升级+重试的组合)。 –

我经历了同样的问题。我发现这里有一个开放的喇叭。在评论中,我发现了一个我在实现重试的函数中实现的提示。

参数数组是一个枚举值数组,其基类型为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

+0

看到https://github.com/lionheart/openradar-mirror/issues/16226和https://openradar.appspot.com/29735288 –

+1

的最佳解决方案,即使它没有充分证明@Edwin。似乎已经减少'错误域= FBSOpenApplicationServiceErrorDomain代码= 1的量“的请求,要求打开” com.apple.test。SomeTest-Runner“'我得到了,谢谢 – JJacquet

玩弄我们观察到,如果我们运行有限的测试情况下,这种错误大大下降后。您可以在https://blog.talentica.com/2017/04/04/use-xcode-8-with-jenkins/