Integrazione continua: I test dell'unità funzionano con "Test MVN" ma falliscono quando eseguito da JaCoCo

StackOverflow https://stackoverflow.com//questions/24013262

Domanda

Ho incontrato un fenomeno molto strano:

Il nostro sistema CI (Jenkins con Plugin MAVEN e SONAR) esegue Maven Test Build su Checkins (funziona bene) ed esegue Build notturni con intgrazioni sonar (corse bene fino alla scorsa settimana). Ora la costruzione notturna compila e gestisce il test (tutto verde) e chiama il plugin sonar. Dopo l'analisi statica, il sonar avvia Jacoco per misurare la copertura del test;Quando Jacoco gestisce i test dell'unità (di nuovo), molti di loro attraversano come previsto, ma quindi prima un test lancia un'eccezione (non gettata nelle solite runs) sulla creazione di un oggetto che è già lì, e alcuni test più avanti nel tuttoIl processo si blocca nel tentativo di rollback una transazione (normalmente non tornata).

Nessun componente è stato aggiornato e non sono state eseguite modifiche al codice sospetto attorno ai test di fallimento.

Conosci qualcuno, come Jacoco tratta i test dell'unità in modo diverso e come risolvere questo problema?

È stato utile?

Soluzione

Prima leggi il mio FAQ

stai dicendo:

.

Ora la costruzione notturna compila ed esegue il test (tutto verde) e chiama Il plugin del sonar ... quando Jacoco gestisce i test dell'unità (di nuovo)

Cosa fa il plugin del sonar? Scopo principale è quello di raccogliere rapporti di prova, incluso Jacoco e inviarlo a Sonar. Può eseguire test per te e raccogliere immediatamente i dati, ma questo non è quello che ti aspetti. Se si desidera solo inviare la copertura del test al server SONAR, eseguire il plug-in Sonar con il parametro sonar.dynamicAnalysis=reuseReports. Non eseguirà di nuovo i tuoi test.

I tuoi test funzionano bene senza plugin sonar e poi il plugin di Sonar li rompe? Potrebbe essere possibile se i test richiedono ulteriori parametri Java (-Dcom.stackoverflow=somevalue) che non passa a Sonar Plugin, o potrebbe essere utilizzato profilo speciale MAVEN (-Psomeprofile) e non farlo quando chiamano il plug-in Sonar

A proposito:

.
.

Quando Jacoco esegue i test dell'unità (di nuovo)

Jacoco non può eseguire test. I test dell'unità devono essere avviati con Jacoco Plugin / Agent in modo che Jacoco salvierà il file *.exec. Se vedi questo file (più comunemente nella dir target) hai jacoco che funziona almeno almeno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top