7

Tengo una aplicación. Hay un botón en la aplicación que, si hace clic, sale de la aplicación. Estoy probando la aplicación usando instrumentos UIAutomation. Quiero probar este botón. Pero después de que la aplicación sale, el instrumento deja de dar una excepción. Lo que quiero hacer es que una vez que la aplicación exista, quiero volver a abrir la aplicación y continuar con el resto de la prueba. ¿Alguien más ha estado en el mismo escenario? Si es así, ¿puede compartir la solución si ha encontrado alguna?¿Cómo continuar probando una aplicación iOS, utilizando el instrumento UIAutomation, incluso después de que la aplicación finalice?

+0

Solo FYI - A Apple no le gusta cuando tienes un botón que existe en la aplicación. ¿Estás construyendo para la tienda de aplicaciones? – nycynik

+0

Sí, ya está en la tienda de aplicaciones. Es un mensajero y existe este botón que restablece la aplicación. (Elimina la información de inicio de sesión) Como consecuencia, la aplicación se cierra. Entonces, técnicamente, no es un botón para salir de la aplicación. –

Respuesta

3

Esto no es posible porque Instruments pierde la conexión con el proceso de la aplicación una vez que se cierra.

Si está scripting UI Automation desde la línea de comandos, puede ejecutar un segundo script de automatización después de que el primero salga de la aplicación que luego verifica para asegurarse de que todo se restablece.

instruments \ 
    -D [trace document] \ 
    -t [instruments template] \ 
    /path/to/Bundle.app \ 
    -e UIARESULTSPATH [directory to store test output] \ 
    -e UIASCRIPT reset_the_app.js 

instruments \ 
    -D [trace document] \ 
    -t [instruments template] \ 
    /path/to/Bundle.app \ 
    -e UIARESULTSPATH [directory to store test output] \ 
    -e UIASCRIPT check_that_the_app_is_reset.js 

Así, en lugar de tratar de conseguir la misma instancia de instrumentos para relanzar y vuelva a conectar a la aplicación, basta con ejecutar dos scripts separados, uno que hace su restablecimiento y de aborto, y el otro que comprueba el resultado estado de la aplicación.

+0

Gracias por la respuesta. Estaba pensando lo mismo que esto no podría hacerse usando UIAutomation. –

0

que puede utilizar:

UIATarget.localTarget().deactivateAppForDuration(n); 

donde n es el número de segundos que desea que esta aplicación se reinicie. Espero que esto ayude.

+0

Desactivar la aplicación no es un reinicio en modo alguno. Consulte el documento como https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW1 para obtener más información. –

0

gracias por las respuestas, pero la documentación dice:

"Cuando un usuario sale de la aplicación pulsando el botón de Inicio o haciendo alguna otra aplicación para aparecer en primer plano, su aplicación está suspendida".

¿No está reiniciando pero está suspendido?

+0

sí, está suspendiendo la aplicación por el tiempo mencionado en segundos y no se está reiniciando. – coder284

Cuestiones relacionadas