objective kits framework development bar apple app ios xcode swift xcode7 xcode-ui-testing

ios - kits - ''NSInternalInconsistencyException'' cuando se ejecuta UITesting con Xcode 7



xcode documentation (11)

Ok, no he podido ejecutar esta prueba en ninguna beta hasta ahora. Algunos de los problemas que he encontrado están here y here

Ahora, siento que me estoy perdiendo algo.

Aquí está mi progreso hasta ahora

  1. Habilite la opción de "prueba de interfaz de usuario" al crear un nuevo proyecto. Esto, de hecho, añade un objetivo para mí. Así que debería ser bueno para irme, o eso pensé.
  2. El archivo swift bajo UI Testing ya había importado "XCTest" y era una subclase de "XCTestCase".
  3. setup () inicia la aplicación XCUIApplication (). launch ()
  4. Y agregué lo siguiente (presionando el botón Grabar)

Y luego, corrí esta prueba.

Todo esto falla incluso antes de que se llame a la prueba, justo después de iniciar la aplicación en setup () con lo siguiente

*** Fallo de afirmación en - [XCUIApplication init], /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Testing / XCUIApplication.m: 76 / Users / UserName / Documents / Projects / Testing / UiTesting / UITestingApp / UITestingApp.swift: 0: error: - [UITestingApp.UITestingApp testSimpleTap]: error: capturado "NSInternalInconsistencyException", "No se ha especificado la ruta de la aplicación de destino mediante la configuración de prueba:
testBundleURL: file: /// Users / UserName / Library / Developer / CoreSimulator / Devices / E3201DC2-CAD3-48C3-95F5-15E18DCA1836 / data / Containers / Bundle / Application / 8B33FC59-FC03-41F8-BD21-43D81BA2D355 / UITestApp .app / PlugIns / UITestingApp.xctest /
productModuleName: (null) testsToSkip: (null) testsToRun: (null) reportResultsToIDE: no sessionIdentifier: <__ NSConcreteUUID 0x7f93e146c0b0> F242796B-ED26-4AA7-861A-540D2D93CB8F pathToXcodeReportingSocket: (null) disablePerformanceMetrics: no hay treatMissingBaselinesAsFailures: no baselineFileURL: (null) targetApplicationPath : (nulo) targetApplicationBundleID: (nulo) reportActivities: no

¿Alguien se ha encontrado con esto o tiene alguna sugerencia sobre lo que podría faltar?

Nota: configuré la "Aplicación de destino" del objetivo de Pruebas de interfaz de usuario para mi aplicación

Actualización: Noté que esto es aplicable a todas las versiones beta / finales de Xcode - título actualizado en consecuencia


  1. Las nuevas plantillas Crear caso de prueba de UI de prueba y Unidad de prueba de unidad no son muy diferentes (las dos primeras líneas del código , Seleccionar prueba de unidad en la prueba mostrarán "La aplicación no se está ejecutando", agregando "Aplicación XCUIA (). Launch ()" puede resolver el problema。
  2. Cuando la prueba le solicite que no encuentre un control (Ej .: UITextField), configure el nombre del control / identidad -> accesibilidad -> Etiqueta / con el mismo nombre que el control utilizado en la Clase de UITest
  3. No ha agregado la clase de prueba a los objetivos de interfaz de usuario correspondientes。

Conseguí esto después de cambiar el nombre de mi objetivo. La solución fue establecer la ''Aplicación de destino'' en ''Ninguna'' en mi objetivo de UITest y hacer clic en compilar. Después de esto, devolví ''No'' a mi aplicación y el error se resolvió. Creo que es muy posible que el cambio de nombre arruinara la configuración de "Aplicación objetivo" del objetivo de la prueba de la interfaz de usuario.


Después de interminables ajustes, cambié la ubicación de los datos derivados en "Preferencias de Xcode" de "Legado" a "Personalizado" y ¡funcionó!


Eliminar el objetivo existente y crear de nuevo soluciona el problema.

Asegúrese de que está seleccionando el paquete de prueba correcto. Para las pruebas de interfaz de usuario, debe ser " Unidad de prueba de iOS ".


Esto me sucedió cuando intentaba agregar una nueva clase a mi objetivo de prueba de unidad, pero he seleccionado la plantilla de Clase de caso de prueba de UI en lugar de la plantilla de Clase de caso de prueba de unidad.

Asegúrese de que siempre seleccione uno adecuado. A pesar de que ambos son subclase XCTestCase y los asigna a un destino adecuado, generará este error al seleccionar una plantilla incorrecta.


Estoy recibiendo la afirmación

*** Fallo en la afirmación en - [XCUIApplication init], /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Testing / XCUIApplication.m: 76

regularmente, como también se describe en otras respuestas. Realmente molesto, y me tomó un tiempo encontrar los pasos mínimos para deshacerme de él.

La solución clave que he encontrado es reiniciar tu dispositivo. Por lo tanto, no es necesario eliminar la aplicación, reiniciar Xcode o algo así, solo reiniciar debería hacer que desaparezca esta afirmación.


Me funcionó después de comentar el siguiente código en el método setup () de mi TestCaseClass

continueAfterFailure = false y XCUIApplication (). launch ()


Recibí este error después de escribir algunas pruebas y ejecutarlas. Intenté todas las correcciones y sugerencias publicadas, pero ninguna de ellas funcionó para mí.

Decidí eliminar la aplicación XCUI que se crea cada vez que ejecutas pruebas, reinicias mi dispositivo y funciona. Sin embargo, si ejecuto las pruebas 7 u 8 veces después, el error vuelve y repito el ciclo de la solución. Si solo eliminas la aplicación y no la reinicias, no funcionará.

No estoy seguro si esta respuesta funcionará para todos, pero esto es lo que funcionó para mí.


Tuve este problema ejecutando pruebas de pepino en xCode 8.

Arreglé yendo Proyecto (En el navegador del proyecto)> MyTestTarget> General

Aquí asegúrese de que la aplicación de destino esté configurada para la aplicación con la que desea ejecutar las pruebas. Por defecto se estableció en Ninguno.


Tuve un problema similar y mi error fue tratar de usar el código de prueba de UI en un objetivo de prueba regular. Una vez que hice un nuevo objetivo, comenzando con "Paquete de pruebas de IU de iOS" y copié el código allí, el error desapareció. Aquí está el hilo que me indicó la dirección correcta: https://twitter.com/punksomething/status/609505357132500993 "Sí, estaba tratando de usar una prueba de interfaz de usuario en un objetivo de prueba regular. Tenía que crear un objetivo de prueba de interfaz de usuario recién agregado "


Yo tuve el mismo problema. Creo que el problema surgió de cambiar el nombre de un objetivo en el camino. Ninguna de las soluciones aquí me ayudó con mi problema. Desde que estaba empezando y no había escrito ninguna prueba, eliminé todo el objetivo de las pruebas de UI y lo volví a agregar. El mismo nombre y todo comenzó a funcionar bien.

Si se encuentra con este problema, es posible que se deba a la denominación. Puede rastrearlo de esa manera o guardar sus pruebas y volver a agregar un objetivo de UI.