gym docs ios xcode xctest fastlane

ios - docs - install fastlane terminal



XCTests no puede iniciar la aplicaciĆ³n en el simulador de forma intermitente (2)

¿Alguien ha experimentado y arreglado:

XCtests falla intermitentemente al iniciar la aplicación en el simulador para pruebas de IU (XCUI). Estoy ejecutando Fastlane, diferentes pruebas parecen fallar en cada ejecución de prueba.

OSX: 10.12.3 simulador de iOS: 10.0 XCode 8.2.1 Fastlane 2.11.0

Intenté solucionarlo agregando una suspensión de 3 segundos entre la configuración y el inicio en mis pruebas, pero sigue apareciendo, quizás no tan a menudo pero aún así ...

Error en la prueba de IU: error al intentar iniciar: Dominio de error = FBSOpenApplicationServiceErrorDomain Code = 1 "La solicitud para abrir" no.something.bb.debug "falló." UserInfo = {NSLocalizedDescription = La solicitud para abrir "no.something.bb.debug" falló., NSLocalizedFailureReason = La solicitud fue denegada por el delegado de servicio (SBMainWorkspace) por la razón: Ocupado ("Application" no.something.bb.debug "is instalación o desinstalación, y no se puede iniciar ")., BSErrorCodeDescription = RequestDenied, NSUnderlyingError = 0x6080002598f0 {Error Domain = FBSOpenApplicationErrorDomain Code = 6" Application "no.something.bb.debug" se está instalando o desinstalando, y no se puede iniciar. " UserInfo = {BSErrorCodeDescription = Ocupado, NSLocalizedFailureReason = La aplicación "no.something.bb.debug" se está instalando o desinstalando, y no se puede iniciar.}}}



Experimenté el mismo problema. Descubrí que hay un rader abierto para esto. En los comentarios encontré una sugerencia que implementé en una función que hace un reintento.

La matriz de argumentos es una matriz de valores de enumeración donde el tipo base es String. Lo uso para los argumentos de la aplicación.

Lamentablemente esto todavía no es prueba completa. En mi caso, el número de fallos se redujo considerablemente, pero no desapareció.

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) } }

La función anterior se incluye en https://github.com/evermeer/UITestHelper