TeamCity dotCover Bericht-Pfad für Sonar
Ich versuche zur Integration der sonar-Analyse von TeamCity build-Prozess. Ich habe einen NUnit-build-Schritt läuft meine unit-tests und dann läuft dotCover für die Berichterstattung.
Mein Nächster Schritt ist der sonar-runner. Die Konfiguration, die derzeit vorhanden ist; gallio.Modus=dotCover, sonar.gallio.Modus=reuseReport aber ich brauche auch sonar.gallio.Berichte.Pfad.
Weiß jemand den Pfad zu den dotCover Bericht generieren, in dem Sie den vorherigen Schritt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnte ich nicht finden einen Weg, dies zu tun mit dem eingebauten NUnit runner. Ich es geschafft, es funktioniert durch die Verwendung eines powershell-build-Schritt manuell aufrufen, die erforderlichen Befehle.
Erste Schritt ist die Ausführung des NUnit-tests über Gallio innerhalb eines dotCover cover nennen:
Die Gallio-Prüfbericht ist verfügbar, um abgeholt werden, die von Sonar mit reuseReport, TeamCity erkennt automatisch die test-Ergebnisse.
Können Sie machen, TeamCity direkt Prozess die Abdeckung Momentaufnahme über das schreiben eines service-Nachricht auf der standard-Ausgabe:
Erhalten die Abdeckung, die info in ein format verwendbar von Sonar müssen Sie die dotCover report-Befehl und die undokumentierte Bericht geben TeamCityXML:
Verbrachte einige Zeit auf dem gleichen Thema, aber mit neuer Sonar-c# - plugin (v. 2.3) - Gallio-support wurde fallen gelassen, aber der Bericht ist immer noch erforderlich.
Antwort auf die Frage direkt, TeamCity bringt dotcover snapshot - Datei in einem temp-Ordner mit einem Namen wie
coverage_dotcover27574681205420364801.data
(wo die Ziffern sind zufällig). SoDas Verfahren ist:
PowerShell-Skript:
Nun können Sie Ihren Bericht in sonnar runner als
sonar.cs.dotcover.reportsPaths='%sonar.coverageReport%'
Wobei %sonar.coverageReport% ist eine definierte Eigenschaft in einem TeamCity
Scheint es TeamCity 2017 nicht mehr schafft coverage_dotcover*.Daten-Dateien. Stattdessen erstellt *.dcvr-Dateien.
Gibt es möglicherweise mehrere Dateien, die müssen zusammengeführt werden, bevor Sie den Bericht erstellen. Als Ergebnis der powershell müssen aktualisiert werden.
Also mit den Schritten zur Verfügung gestellt von Oleksandr, aktualisieren Sie einfach das Skript zu:
Dann die Eigenschaft %sonar.coverageReport% übergeben werden kann, um die sonarqube-scanner. Btw, müssen Sie einen parameter erstellen, der in TC für %sonar.coverageReport% z.B. "sonarcoverage.html"
Die Berichterstattung Bericht aus der nunit/dotcover build-Schritt, in dem gespeichert ist teamcity versteckte Artefakte-Verzeichnis. Sie müssen hinzufügen, dass ein Artefakt in Abhängigkeit der sonar Schritt. Ich würde nicht empfehlen, das versteckte Artefakt Weg, aber es kann getan werden.
Dies ist das Artefakt Weg, den ich verwendet, den Bericht zu veröffentlichen, die arbeitete für ein paar Wochen, dann begann zu scheitern:
%env.TEAMCITY_DATA_PATH%/system\artifacts\**\%teamcity.build.id%\.teamcity\.NETCoverage\dotCover.snapshot
Sobald Sie den Bericht, Ihr zu Hause bist frei, obwohl.
Obwohl es vielleicht ein bisschen umständlich, Lösung, bin ich mit zwei verketteten baut.
Den ersten build-Konfiguration baut die Lösung und führt die tests/Abdeckung, plus speichert die dotCover Schnappschuss als ein Artefakt.
Den anderen build hat ein Artefakt Abhängigkeit von der ersten auf
.teamcity/.NETCoverage/dotCover.snapshot
und läuft"C:\Program Files (x86)\JetBrains\dotCover\v2.7\bin\dotCover.exe" report /ReportType=HTML /Source="dotCover.snapshot" /Output="dotCover.html"
und, als neueste Schritt führt SonarRunner (Ihr Projekt properties-Datei wird an die "dotCover.html").(Versucht mit SonarQube 5, dotCover 2.7, TC8)
Sind wir mit SonarScanner für MSBuild und hinzuzufügen brauchte das team Stadt temporären build-Pfad zu der beginnen Schritt.
Bauen Ihres Projekts mithilfe von MSBuild
Führen Sie Ihre test-tool, wies er einen Bericht zu erstellen, an der gleichen Stelle, die früher angegeben, um die MSBuild SonarQube Läufer
Laufen SonarScanner.MSBuild.exe end-Befehl
Unten ist was für mich gearbeitet. Ich bin auf TC 2018.2.4 und die mitgelieferte version von dotCover wurde generiert nicht alles, so dass ich aktualisiert, dass Sie auf die neueste version sowie die 2019.1.1
Konnte ich nicht machen, der agent verwenden Sie die neueste version von dotcover-tools und so hatte ich zum erstellen der Ordner-Pfad, für, dass, anstatt die Standardeinstellung %teamcity.dotCover.home% variable.
Habe ich auch nicht verwenden möchten, den Ordner "temp" wie die Dinge wurden immer gelöscht, indem Sie die build.