Sto usando gcov.
La mia configurazione è abbastanza complicata ora che sto dover pensare a descriverlo:
Ho usato la distro MinGW da STL, disponibile presso nuwen.net per gcc (g ++) e gcov. Questo mi dà un certo grado di portabilità.
Costruisco la mia applicazione di test utilizzando scons e un file batch per costruirlo ed eseguirlo per controllarlo.
Quindi, eseguo il commit del codice per il controllo della versione e un server CI Jenkins in esecuzione sulla mia macchina lo preleva e utilizza ancora scons, lo compila, ma questa volta utilizzando il flag --coverage
. Esegue l'app di test, che questa volta emette il file * .gc ?? File. Quindi eseguo gcov una volta, ma dicendogli dove sono tutti i file, il che produce un sacco di file * .gcov. In passato ho usato lo script python gcovr.py
, ma da allora ho scritto il mio per scansionare tutti i file * .gcov e stampare tutte le righe non coperte.
Non sono sicuro dello stato open source di tutti quei pezzi, ma so che sono gratuiti.
Nota: Se si utilizza VS10, si utilizzano alcuni C++ 11 caratteristiche sotto il cofano, ad es sposta la semantica nella libreria standard, a meno che tu non abbia definito _HAS_CPP0X = 0 –
@Arne Mertz Sì, ho #define _HAS_CPP0X 0, grazie! – Baz