2013-10-09 6 views
16

Wir richten TeamCity ein, um unsere Jasmin-Tests mit Knoten und Karma durchzuführen.Code Coverage Report für Karma auf TeamCity konfigurieren

Die Tests laufen gut und die Ergebnisse werden in TeamCity unter der Registerkarte "Tests" angezeigt.

Allerdings möchten wir die Codeabdeckung in TeamCity melden (und sogar Build-Fehlerbedingungen auf der Ebene festlegen).

ich das Karma-coverage-Modul

npm install karma-coverage --save-dev 

und versuchte, sie in karma.conf.js zu konfigurieren, indem Sie das Hinzufügen

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

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

Wenn Karma ausgeführt wird, werden keine Fehler gemeldet, und viele Dateien installiert sind erstellt unter dem Ordner coverage, einschließlich eines sehr schön formatierten Code-Coverage-Bericht in index.html

Aber nichts ne w taucht in TeamCity auf. Keine Registerkarte "Code Coverage".

Wie konfiguriere ich Karma, um Berichte zu erstellen, die in TeamCity angezeigt werden?

Vielleicht kann ich Set coverageReporter zu etwas geeignet verwenden, aber was? Diese Einstellung macht keinen Unterschied:

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

Bonus Frage: Wie kann ich die Fehlerbedingungen auf dem Karma Build-Code-Coverage berichtet?

Antwort

23

Der einfachste Weg, TeamCity dazu zu bringen, Ihren Abdeckungsbericht zu erkennen, ist die Ausgabe eines Build-Artefakts, das diesen netten HTML-Coverage-Bericht enthält.

Bearbeiten Sie die Konfigurationseinstellungen für den Build und unter Artifact Paths hinzufügen so etwas wie:

coverage/** => coverage.zip 

Teamcity wird das coverage.zip Artefakt erkennen, wenn es die Datei index.html in der Wurzel findet und einen Code hinzufügen Registerkarte "Abdeckung" für jeden Build

Quelle: https://confluence.jetbrains.com/pages/viewpage.action?pageId=74847395#HowTo...-ImportcoverageresultsinTeamCity (Teamcity Version 9.x)

+1

Ich bin mit Teamcity Professionelle 10.0.4 (Build 42538) und die coverage.zip bieten Datei wurde von TeamCity nicht automatisch erkannt. Laut @ekimpl musste ich in den Projekteinstellungen manuell eine neue Build-Bericht-Registerkarte erstellen mit Start Page = coverage.zip! Index.html – EdL

1

Sie wissen nicht, ob die Reihenfolge wichtig ist, und sollten Sie nicht verwenden [] Klammern bei Preprozessoren Einträge?

Versuchen Sie Folgendes:

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

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

Da die Dateien generiert werden, ist dies wahrscheinlich nicht das Problem. – MEMark

3

In meinem Fall der Bericht erfolgreich in coverage.zip generiert wurde, aber der Code-Coverage-Registerkarte wurde in Build-Bericht nicht sichtbar.

Ich hatte manuell auf die Registerkarte Bericht in Projekteinstellungen hinzufügen und einen vollständigen Pfad zur Datei index.html

enter image description here