Il modo tradizionale di Linux e Unix per trovare la copertura del codice consiste nell'usare gcov per generare la mappa di copertura e lcov per rendere l'output carino. La copertura del codice misura se, e in tal caso, quante volte viene eseguita una riga di codice. Questo è utile per misurare l'efficacia del codice del test. In teoria, più righe sono "coperte", più completi sono i tuoi test. Tuttavia, il legame tra copertura del codice e completezza del test può essere tenue.
Dati sulla copertura del codice
I dati sulla copertura del codice sono generalmente divisi in due parti, la copertura della linea e la copertura delle funzioni, che sono entrambe espresse più facilmente come percentuali. Questi numeri sono facilmente comprensibili per i singoli test unitari. Quando si verifica una singola funzione o un metodo all'interno di un oggetto, il numero totale di funzioni e righe nel file caricato funge da denominatore per il calcolo della percentuale. Quindi, se distribuisci i tuoi test su più file per un singolo modulo, la copertura dei test unitari sarà bassa per ogni singolo test. L'aggregazione di tutti i numeri di copertura di ogni singolo test fornirà il quadro completo della copertura per quel file.
Se incontri un errore come mostrato di seguito:
lcov: command not found
puoi provare a installare il pacchetto sottostante secondo la tua scelta di distribuzione.
Distribuzione | Comando |
---|---|
OS X | brew install lcov |
Debian | apt-get install lcov |
Ubuntu | apt-get install lcov |
Kali Linux | apt-get install lcov |
Fedora | dnf install lcov |
Raspbian | apt-get install lcov |
Pensieri finali
La generazione e la visualizzazione delle informazioni sulla copertura del codice sono fondamentali per i test unitari e importanti per i test di integrazione aggregati. Mentre i numeri di copertura del codice non raccontano l'intera storia, le informazioni sulla copertura del codice forniscono un bel numero unico da utilizzare per tenere traccia dell'avanzamento dei test.