2011-05-01 29 views
22

Necesito cobertura de código para mi aplicación de iPhone.XCode - ¿Cobertura del código?

¿Alguien puede proporcionar información detallada sobre cómo obtener la cobertura de código para Xcode 4?

Gracias

+0

Clang/LLVM no tiene soporte para gcov y no proporcionan capacidades de cobertura de código. Es posible que pueda usar gcov con GCC dependiendo de si su programa se compila con GCC. Vea [este informe de error en LLVM] (http://llvm.org/bugs/show_bug.cgi?id=8030) y considere [presentar un radar de solicitud de característica] (http://bugreport.apple.com) también. –

+0

Ha configurado UIApplicationExitsOnSusspend en SÍ en su info.plist – aryaxt

+1

@Bavarious: según su informe de errores, clang admite la cobertura ahora? –

Respuesta

12

Tengo una entry on my blog que cubre este tema exacto.

Proporciona una guía paso a paso sobre cómo habilitar GCOV en Xcode 4 y cómo usar CoverStory para mostrar los resultados.

+0

Seguí todas sus instrucciones y termino con una cobertura de código de 0% en cada archivo. las pruebas pasan mientras se muestra el resultado de la construcción. ¿Alguna sugerencia? – aryaxt

+0

Asegúrate de no estar utilizando ningún encabezado precompilado, ya que pueden provocar 0% de resultados. Es posible que también necesites hacer una compilación limpia. –

+0

Gracias. 1 pregunta más¿Puedo configurar mi objetivo en iOS o tiene que ser MAC OS X. – aryaxt

9

Estos pasos ayudarán.

  1. Cree una nueva configuración de compilación ('Cobertura'), duplicada de la configuración 'Depurar'.

  2. Abre la configuración de creación para el objetivo principal, asegúrese de que su nueva configuración se selecciona, y:

    Enable “Generate Test Coverage Files” 
    Enable “Instrument Program Flow” 
    Add “-lgcov” to “Other Linker Flags” 
    
  3. de compilar la aplicación con el modo de cobertura.

  4. Comprueba los archivos .gcno de la carpeta del paquete de aplicaciones.

    Cobertura-iphonesimulator/applicationname.build/objetos normales

    abren .gcno archivos con Coverstory. Descargar Coverstory de
    http://code.google.com/p/coverstory/downloads/list

Sitios de Referencia

3

No pude encontrar un buen ejemplo de esto, así que con suerte esto ayudará a alguien más.

Si desea generar código HTML de su cobertura de código (una vez que se generó .gcda sus archivos), puede instalar y utilizar lcov estos comandos:

function generate-codecoverage-html() { 
    if [[ $1 == "-h" || ! $# -eq 2 ]]; then 
     echo " usage: $0 path/to/codecoverage/dir/ path/to/htmldir/" 
     return 
    fi 

    timestamp=$(date) 
    tmpfile="/tmp/codecoverage.info-$date" 
    lcov --no-checksum --directory "$1" --capture --output-file "$tmpfile" 
    genhtml --output-directory "$2" "$tmpfile" 
} 
+0

¿dónde está 'lcov'? – AnneTheAgile

+0

lo encontró; https://github.com/linux-test-project/lcov, referenciado en https://github.com/jonreid/XcodeCoverage – AnneTheAgile

Cuestiones relacionadas