Domanda

Ho lo stesso file di origine (C e Obj-C) di essere compilati in due obiettivi: l'eseguibile unit test e il prodotto reale (che poi si fa l'integrazione testato). I due obiettivi costruire in luoghi diversi, in modo che i file oggetto, .gcno e .gcda file sono separati. Non tutti i file di origine vengono compilati nel test di unità, in modo da non esisteranno tutti gli oggetti là. Tutti i file di origine vengono compilati in build del prodotto.

C'è un modo per combinare i due set di .gcda file per ottenere la copertura totale per i test unitari e test di integrazione (come vengono eseguiti sul accumulo del prodotto)?

sto usando lcov.

Mac OS X 10.6, GCC 4.0

Grazie!

È stato utile?

Soluzione

Dal momento che si sta utilizzando lcov, si dovrebbe essere in grado di convertire i file gcov .gcda in file lcov e unirli con lcov --add-tracefile.

  

Da pagina di manuale: Aggiungi contenuto del file di traccia.   Specificare diversi tracefiles utilizzando l'opzione -a per combinare i dati di copertura contenute in questi file sommando i conteggi di esecuzione delle combinazioni di test e il nome di corrispondenza.

Altri suggerimenti

Finalmente sono riuscito a risolvere il mio problema per mezzo di lcov.

In pratica quello che ho fatto è il seguente:

  • Compila l'applicazione con le bandiere -fprofile-arcs -ftest-coverage --coverage
  • Distribuire la copia della domanda per ciascun nodo.
  • Eseguire l'applicazione in ciascun nodo in parallelo. (Questo passaggio genera nella directory dell'applicazione nell'ospite accesso alle informazioni di copertura)
  • Let lcov fare il suo lavoro:
    • lcov --directory src/ --capture --output-file coverage_reports/app.info
  • Genera l'output HTML:
    • genhtml -o coverage_reports/ coverage_reports/app.info

Spero che questo possa essere di aiuto a qualcuno.

I fonderlo da lcov parametri multipli -d come di seguito. Esso funziona.

lcov -c -d ./tmp/ -d ./tmp1/ -o ./tmp/coverage.info
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top