2009-12-22 9 views
6

Recientemente he comenzado a probar unidades de una aplicación que escribo para el iPhone. Tengo los fundamentos de crear mis propias pruebas, incluso si parece un poco subóptimo. Sin embargo, estoy teniendo problemas para configurar el análisis de cobertura de código usando gcov.¿Cómo configurar gcov para el análisis de cobertura de código en iPhone SDK?

Seguí las instrucciones aquí: http://www.cubiclemuses.com/cm/articles/2009/05/14/coverstory-on-the-iphone/, que se repiten de manera muy similar en otros lugares. He intentado usar Google's AppleScript desde su caja de herramientas para que Mac lo haga solo en caso de que estuviera ingresando algo incorrecto en Xcode.

He utilizado el proyecto iPhoneUnitTests sample de Apple como un proyecto base, y simplemente ejecuto el AppleScript de Google para habilitar la prueba de cobertura de código en comparación con el objetivo CalcTests para obtener un ejemplo automatizado y bien fundado de que no funciona. No importa cuál sea el escenario que utilizo, mi propio código, de Apple, la configuración manual de las variables adecuadas o dejar de AppleScript de Google lo haga por mí, todo lo que consigo son estos errores en la consola de depuración una vez que las pruebas hayan terminado ejecutando:

profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcViewController.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/Calculator.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcAppDelegate.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/main.gcda:Skip 

Los archivos gcda no se crean y, por lo tanto, no tengo nada que analizar. Cualquier ayuda con esto sería muy apreciada.

Respuesta

6

La solución es que estas guías se refieren al código de ejecución en el simulador de iPhone. Debido a que estoy ejecutando pruebas de nivel de aplicación, estoy haciendo perfiles cruzados y necesito seguir this information.

Luego configuro la variable de entorno GCOV_PREFIX para volcarla en el directorio Documentos de mi aplicación, y luego utilizo el Organizador en Xcode para descargar el paquete de mi aplicación del dispositivo para sacar los archivos .gcda del directorio de Documentos. Esto es bastante engorroso y difícilmente se presta a pruebas de cobertura automáticas, pero es la única solución que puedo ver dadas las limitaciones de correr en una caja de arena y usar clases que solo están disponibles para probar en el dispositivo (es decir, MediaPlayer.framework).

Cuestiones relacionadas