¿Es posible ejecutar pruebas basadas en XCTEST en instrumentos en Xcode 5?
-
21-12-2019 - |
Pregunta
Mirando la prueba de la unidad de XCTEST y XCODE 5 y no vea cómo ejecutar mis pruebas de 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?
Solución
Creo que esta es la forma más fácil:
- establece un punto de interrupción en algún lugar de sus pruebas (lo he estado haciendo en el método de configuración)
- Abrir un nuevo documento en los instrumentos
- Ejecute la solicitud y asegúrese de que se detiene en un punto de interrupción
- Desde la caída objetivo en los instrumentos, elija Adjuntar para procesar y desplácese hasta su proceso
- Haga clic en el registro y luego reanudar en Xcode
Otros consejos
Aquí está la forma 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 el buscador" en el menú contextual.
2) Lanzar instrumentos y cree un nuevo documento con la plantilla de su elección.
3) hacer "Elija Target ..." para el documento
4) Navegue y seleccione la herramienta Xcode utiliza para ejecutar pruebas ubicadas en /Applications/Xcode.app/Contents/Developer/usr/bin/xctest
(puede encontrar esta ubicación con xcrun -f xctest
en terminal): deberá habilitar "paquetes transversales" para navegar dentro de la aplicación xcode.
5) Arrastrar y soltar desde el buscador en el campo "Argumentos", el producto ".xctest" revelado en el paso 1: esto ingresa su ruta absoluta.
6) Haga clic en "Elegir".
¡Ahora está listo para ejecutar sus pruebas unitarias de los instrumentos!
I created a new target based on the mac app target I am testing, then added the xctest classes to the files to compile.
I then added the /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework to the frameworks to link against.
Then added its path $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks to the Runpath Search Paths.
Then in the main.m I added the following:
XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"];
[suite addTest:[VideohogCachingTest testCaseWithSelector:@selector(testCompleteSequentialText)]];
[suite run];
This ran the test testCompleteSequentialText on the class VideohogCachingTest I needed to run as a normal application, therefore allowing me to run the test by either command+R or in this case, profiling with command+I. I could then catch a zombie and trace the problem, which was not a possibility for me previously. If you'd like to run all your tests you can do:
XCTestSuite *suite = [XCTestSuite defaultTestSuite];
[suite run];