objective guide developer apple xcode5 xcode-instruments xctest

xcode5 - guide - ¿Es posible ejecutar pruebas basadas en XCTest bajo Instruments en Xcode 5?



swift ios documentation (4)

Mirando las pruebas de las unidades XCTest y Xcode 5 y no viendo cómo ejecutar las pruebas de mi unidad en Instrumentos en Xcode 5 ...

Específicamente, me gustaría buscar fugas durante la prueba (esto no tiene que ser automatizado en este caso, aunque claramente sería útil).

¿Posible?


Aquí está la manera correcta de hacerlo bajo Xcode 6:

1) En su proyecto Xcode, revele la carpeta "Productos", seleccione el producto ".xctest", haga clic con el botón derecho y finalmente elija "Revelar en Finder" en el menú contextual.

2) Inicie Instruments y cree un nuevo documento con la plantilla que desee.

3) Hacer "Elegir destino ..." para el documento

4) Navegue y seleccione la herramienta que Xcode usa para ejecutar las pruebas ubicadas en /Applications/Xcode.app/Contents/Developer/usr/bin/xctest (puede encontrar esta ubicación usando xcrun -f xctest en Terminal) - deberá habilitar "Traverse Packages" para navegar dentro de la aplicación Xcode.

5) Arrastre y suelte desde el Finder en el campo "Argumentos" del producto ".xctest" revelado en el paso 1: esto entra en su ruta absoluta.

6) Haga clic en "Elegir".

¡Ya está listo para ejecutar las pruebas unitarias de Instruments!


Creé un nuevo objetivo basado en el objetivo de la aplicación mac que estoy probando, y luego agregué las clases xctest a los archivos para compilar.

Luego agregué el /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework a los marcos para enlazar.

Luego agregó su ruta $ (DEVELOPER_DIR) /Platforms/MacOSX.platform/Developer/Library/Frameworks a las rutas de búsqueda de Runpath .

Luego en el main.m agregué lo siguiente:

XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"]; [suite addTest:[VideohogCachingTest testCaseWithSelector:@selector(testCompleteSequentialText)]]; [suite run];

Esto ejecutó el test testCompleteSequentialText en la clase VideohogCachingTest que necesitaba para ejecutar como una aplicación normal, por lo tanto, me permite ejecutar la prueba con cualquiera de los comandos + R o, en este caso, con el comando + I. Entonces pude atrapar a un zombie y rastrear el problema, lo cual no era una posibilidad para mí anteriormente. Si desea ejecutar todas sus pruebas puede hacer:

XCTestSuite *suite = [XCTestSuite defaultTestSuite]; [suite run];


Creo que esta es la forma más fácil:

  1. Establezca un punto de interrupción en algún lugar de sus pruebas (lo he estado haciendo en el método de configuración)
  2. Abrir un nuevo documento en instrumentos.
  3. Ejecute la aplicación y asegúrese de que se haya detenido en un punto de interrupción
  4. Desde el menú desplegable Target en Instruments, elija Attach to Process y desplácese hacia abajo hasta su proceso.
  5. Haga clic en el registro y luego reanudar en XCode

En Xcode, haga clic derecho en su prueba en el navegador de prueba y seleccione "Perfil" Nombre de prueba "":