2013-10-09 14 views
16

Stiamo configurando TeamCity per eseguire i nostri test sui gelsomini utilizzando nodo e karma.Configurazione del report di copertura del codice per Karma su TeamCity

I test funzionano correttamente ei risultati sono riportati nella scheda "Tests" in TeamCity.

Tuttavia vorremmo segnalare la copertura del codice in TeamCity (e anche impostare le condizioni di guasto di build sul livello).

Ho installato il modulo karma-copertura

npm install karma-coverage --save-dev 

e ha cercato di configurarlo in karma.conf.js aggiungendo

preprocessors: { 
'myProject/Scripts/app/**/*.js': 'coverage' 
}, 

reporters: ['progress', 'coverage'], 

Quando il karma viene eseguito, sono riportati errori, e un sacco di file sono creato sotto la cartella coverage, compreso un rapporto di copertura del codice molto ben formattato in index.html

Ma niente ne w si presenta in TeamCity. Nessuna scheda "Copertura del codice".

Come configurare il karma per la produzione di report visualizzati in TeamCity?

Forse posso usare il set coverageReporter per qualcosa di appropriato, ma cosa? Questa impostazione non fa alcuna differenza:

coverageReporter: { 
    type : 'html', 
    dir : 'coverage/' 
}, 

Domanda bonus: come faccio a impostare costruire Failure condizioni sul karma segnalato copertura del codice?

risposta

23

Il modo più semplice per consentire a TeamCity di riconoscere il report di copertura è quello di generare un artefatto di build che contenga un report di copertura html.

Modificare le impostazioni di configurazione per il vostro costruire e sotto Artefatto percorsi aggiungere qualcosa come:

coverage/** => coverage.zip 

TeamCity riconoscerà l'artefatto coverage.zip se trova il file index.html nella radice e aggiungerà un codice Scheda di copertura per ogni build.

Fonte: https://confluence.jetbrains.com/pages/viewpage.action?pageId=74847395#HowTo...-ImportcoverageresultsinTeamCity (versione TeamCity 9.x)

+1

Io corro TeamCity professionale 10.0.4 (build 42538) e la coverage.zip il file non è stato rilevato automaticamente da TeamCity. Come per @ekimpl, ho dovuto creare manualmente una nuova scheda di report di costruzione nelle impostazioni del progetto con Start Page = coverage.zip! Index.html – EdL

1

Non so, se la sequenza è importante, e non si dovrebbe usare [] parentesi a voci preprocessore?

provare quanto segue:

reporters: ['progress', 'coverage'], 

preprocessors: { 
'myProject/Scripts/app/**/*.js': ['coverage'] 
}, 
+0

Poiché i file sono generati, questo probabilmente non è il problema. – MEMark

3

Nel mio caso il rapporto è stato generato con successo in coverage.zip, ma la scheda di copertura di codice non era visibile nella relazione build.

ho dovuto aggiungere manualmente la scheda report in Impostazioni progetto e fornire un percorso completo del file index.html

enter image description here