Aufgabe „Code Coverage-Ergebnisse veröffentlichen“

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Verwenden Sie diese Aufgabe in einer Buildpipeline, um Codeabdeckungsergebnisse zu veröffentlichen, die beim Ausführen von Tests an Azure Pipelines oder TFS erstellt werden, um Die Abdeckungsberichte zu erhalten. Die Aufgabe unterstützt beliebte Ergebnisformate wie Cobertura und JaCoCo.

Diese Aufgabe kann nur in Buildpipelinen verwendet werden und wird in Release-Pipelines nicht unterstützt.

Aufgaben wie Visual Studio Test, .NET Core, Ant, Maven, Gulp, Grunt bieten auch die Möglichkeit, Codeabdeckungsdaten in der Pipeline zu veröffentlichen. Wenn Sie diese Aufgaben verwenden, benötigen Sie keine separate Aufgabe zum Veröffentlichen von Codeabdeckungsergebnissen in der Pipeline.

Forderungen

Um den HTML-Codeabdeckungsbericht zu generieren, benötigen Sie dotnet 2.0.0 oder höher im Agent. Der Dotnet-Ordner muss sich im Umgebungspfad befinden. Wenn mehrere Ordner mit dotnet enthalten sind, muss dies mit Version 2.0.0 vor allen anderen in der Pfadliste liegen.

YAML-Codeausschnitt

# Publish code coverage results
# Publish Cobertura or JaCoCo code coverage results from a build
- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: 'JaCoCo' # Available options: 'JaCoCo', 'Cobertura'
    summaryFileLocation: 
    #pathToSources: # Optional
    #reportDirectory: # Optional
    #additionalCodeCoverageFiles: # Optional
    #failIfCoverageEmpty: false # Optional

Die Parameter "codeCoverageTool " und "summaryFileLocation " sind obligatorisch.

Informationen zum Veröffentlichen von Codeabdeckungsergebnissen für JavaScript mit Istanbul mithilfe von YAML finden Sie im Abschnitt "Ökosysteme" dieser Themen, die auch Beispiele für andere Sprachen enthalten.

Ein Beispiel für die Veröffentlichung von Codeabdeckungen mithilfe von Cobertura finden Sie in diesem Abschnitt zur Codeabdeckung.

Argumente

Argument BESCHREIBUNG
codeCoverageTool
Codeabdeckungstool
(Erforderlich) Verwenden Sie standardmäßig JaCoCoCo. Verfügbare Optionen: JaCoCoCo, Cobertura.
summaryFileLocation
Pfad zu Zusammenfassungsdateien
(Erforderlich) Pfad der Zusammenfassungsdatei, die Codeabdeckungsstatistiken enthält, z. B. Zeile, Methode und Klassenabdeckung. Mehrere Zusammenfassungsdateien werden in einem einzelnen Bericht zusammengeführt. Der Wert kann Minimatchmuster enthalten.
Beispiel: $(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura/coverage.xml
pathToSources
Pfad zu Quelldateien
(Optional) Pfad zu Quelldateien ist erforderlich, wenn die Abdeckungs-XML-Berichte keinen absoluten Pfad zu Quelldateien enthalten.
JaCoCo-Berichte verwenden beispielsweise keine absoluten Pfade und wenn Sie JaCoCo-Abdeckung für Java-Apps veröffentlichen, würde das Muster ähnlich $(System.DefaultWorkingDirectory)/MyApp/src/main/java/sein.
Diese Eingabe ist auch erforderlich, wenn Tests in einem Docker-Container ausgeführt werden. Diese Eingabe sollte auf absoluten Pfad zu Quelldateien auf dem Host verweisen.
Zum Beispiel, $(System.DefaultWorkingDirectory)/MyApp/
reportDirectory
Berichtsverzeichnis
(Optional) Pfad des HTML-Berichtsverzeichniss für die Codeabdeckung. Das Berichtsverzeichnis wird später als Artefakte des Builds veröffentlicht. Der Wert kann Minimatchmuster enthalten. Beispiel: $(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura
additionalCodeCoverageFiles
Zusätzliche Dateien
(Optional) Dateipfadmuster, das alle zusätzlichen Codeabdeckungsdateien angibt, die als Artefakte des Build veröffentlicht werden sollen. Der Wert kann Minimatchmuster enthalten. Beispiel: $(System.DefaultWorkingDirectory)/**/*.exec
failIfCoverageEmpty
Fehler, wenn Codeabdeckungsergebnisse fehlen
(Optional) Schlägt den Vorgang fehl, wenn die Codeabdeckung keine Ergebnisse zur Veröffentlichung erzeugt hat.

Docker

Für Apps, die Docker verwenden, können Build- und Tests innerhalb des Containers ausgeführt werden, indem Codeabdeckungsergebnisse innerhalb des Containers generiert werden. Um die Ergebnisse in der Pipeline zu veröffentlichen, sollten die resultierenden Artefakte für die Aufgabe " Codeabdeckungsergebnisse veröffentlichen" zur Verfügung gestellt werden. Referenz finden Sie ein ähnliches Beispiel für die Veröffentlichung von Testergebnissen unter Build, Test und Veröffentlichen von Ergebnissen mit einem Docker-Dateiabschnitt für Docker.

Anzeigen der Ergebnisse

Informationen zum Anzeigen der Codeabdeckungsergebnisse in der Pipeline finden Sie unter Überprüfen der Codeabdeckungsergebnisse

Quelle öffnen

Diese Aufgabe wird auf GitHub Open Source. Feedback und Beiträge sind willkommen.

Häufig gestellte Fragen

Werden Codeabdeckungsdaten zusammengeführt, wenn mehrere Dateien als Eingabe für die Aufgabe bereitgestellt werden oder mehrere Aufgaben in der Pipeline verwendet werden?

Derzeit ist die von dieser Aufgabe bereitgestellte Codeabdeckungsfunktion begrenzt und führt keine Abdeckungsdaten zusammen. Wenn Sie mehrere Dateien als Eingabe für die Aufgabe bereitstellen, wird nur die erste Übereinstimmung berücksichtigt. Wenn Sie mehrere Veröffentlichungscodeabdeckungsaufgaben in der Pipeline verwenden, wird die Zusammenfassung und der Bericht für die letzte Aufgabe angezeigt. Alle zuvor hochgeladenen Daten werden ignoriert.

Hilfe und Support

Bekannte Probleme

Die Aufgabe der Veröffentlichung von Codeabdeckungsergebnissen generiert und veröffentlicht den HTML-Bericht, eine Reihe von HTML-Dateien, die aus der Hauptdatei index.htmlverknüpft sind. Wenn die Codeabdeckungsregisterkarte den Codeabdeckungsbericht nicht anzeigen kann, überprüfen Sie, ob die Größe der index.html-Datei nahe oder größer als 7 MB ist. Führen Sie die folgenden Schritte aus, um die Größe der Datei zu überprüfen. Wenn die Dateigröße in der Nähe oder größer als 7 MB liegt, können Sie dann die folgende Problemumgehung verwenden, um den Abdeckungsbericht anzuzeigen:

  1. Wählen Sie die Registerkarte "Buildzusammenfassung " aus, und wählen Sie dann den veröffentlichten Link aus:

    Screenshot, der den veröffentlichten Link im Zusammenfassungsbereich anzeigt.

  2. Wählen Sie neben dem Codeabdeckungs-Report_* -Artefakte die Option "Artefakte herunterladen" aus:

    Screenshot, der den Link

  3. Wenn der Codeabdeckungsbericht heruntergeladen wird, extrahieren Sie die .zip Datei.

  4. Überprüfen Sie im Codeabdeckungsbericht die Größe von index.html , um festzustellen, ob die Dateigröße das hier beschriebene Problem verursacht.

  5. Öffnen Sie index.html in einem Browser, um den Codeabdeckungsbericht anzuzeigen.