Ho una configurazione Maven multi-modulo con codice Java.Come posso ottenere Emma o Cobertura, con Maven, per segnalare la copertura del codice sorgente in altri moduli?
La mia unità testa, in uno dei moduli, il codice di esercizio in più moduli. Naturalmente, i moduli hanno interdipendenze e il codice in tutti i moduli rilevanti viene compilato secondo necessità prima dell'esecuzione del test.
Quindi: come posso ottenere un rapporto sulla copertura dell'intero codebase?
Nota: non sto chiedendo come combinare i risultati della copertura per i test in più moduli. Sto chiedendo come ottenere la copertura per i test in un singolo modulo usando il codice strumentato da più moduli. Chiunque fosse interessato al primo potrebbe fare riferimento a theseotherquestions e alle raccomandazioni di Crowne per Maven Dashboard e Sonar.
Sono riuscito a ottenere un rapporto di copertura completo using pure Ant. [EDIT:] Ho strumentato tutti i jar dalla directory di sviluppo-runtime in una directory temporanea; anteposto la directory temporanea al classpath; quindi eseguito i test da Ant con il test batch .
Ant può essere eseguito da Maven, ma la sfida qui è l'integrazione senza soluzione di continuità (cioè, l'alimentazione automatica di tutti gli elementi classpath e sourcepath da Maven a Ant automaticamente), motivo per cui non ho usato le strutture di Maven per questo scopo.
Ci sono anche otherquestions sui test di integrazione. Tuttavia, per impostazione predefinita, il report di ciascun progetto per impostazione predefinita riporta solo la copertura del codice nello stesso progetto , mentre i miei test eseguono il codice in più progetti.
Questo article in Spanish potrebbe essere rilevante. Ecco un altro Seam-specific article.
Tutti i miei moduli sono sotto il mio controllo. Tutti sono compilati e strumentati, in base all'albero delle dipendenze, quando eseguo Maven e lo strumento di copertura. –
@Joshua Fox. Immagino sia necessario verificare con gli sviluppatori di Cobertura o guardare la fonte di cobertura. – Raghuram