Überprüfen Sie die Abdeckung mit Codecov in der Java + Gradle + Wercker-Konfiguration

Es hat einen starken Aspekt in meiner Arbeitsaufzeichnung, aber ich habe ein Arbeitsverfahren für den Inhalt des Titels erstellt, daher werde ich es veröffentlichen.

Überblick

Dies ist das Verfahren zum Übertragen von Ergebnissen der Abdeckungsmessung an Codecov während der Wercker-Erstellungsphase im GitHub-Repository von Java-Anwendungen mit Gradle.

Codecov

URL

https://codecov.io/gh

Grund für die Auswahl

Ich habe mich gefragt, welchen ich mit Overalls verwenden soll, aber ich habe Referenzartikel zugestimmt und mich für Codecov entschieden.

Jacoco

Wird zur Messung der Abdeckung verwendet. Lauf von Gradle weg.

Über Version 0.8

Der neuen Java-Syntax wurden verschiedene Optionen hinzugefügt, z. B. ob sie abgedeckt werden soll. Referenzartikel

Informationen zur nicht spezifizierten Konstruktorabdeckung

Wenn für implizite Konstruktoren, für die kein Konstruktor deklariert wurde, der Testcode für den Konstruktor (Instanziierung) nicht geschrieben wurde, behandelt Jacoco ihn als nicht bestanden und die Abdeckungsrate verringert sich. Dies kann beispielsweise in einer Dienstprogrammklasse mit statischen Methoden geschehen. Für Klassen, die nicht instanziiert sind, sollte der Konstruktor sorgfältig privat sein, obwohl er möglicherweise etwas redundant ist. Dann wird Jacoco den Konstruktor als nicht abgedeckt behandeln und die Abdeckung wird nicht unnötig abfallen. Wenn Sie den Konstruktor explizit deklarieren, sollte er aus dem Produktcode verwendet werden. Schreiben Sie den Testcode daher ordnungsgemäß.

Es scheint, dass es von Jacoco 0.8.0 unterstützt wurde

Inhaltsverzeichnis

  1. Fügen Sie das CodeHov-GitHub-Repository hinzu
  2. Beschreibung für jacoco test zu build.gradle hinzugefügt
  3. Beschreibung zu wercker.yml hinzugefügt, um Berichterstattung an Codecov zu senden
  4. Erstellen Sie codecov.yml und beschreiben Sie die OK-Bedingungen für die Ergebnisse der Abdeckungsmessung.
  5. Übernehmen Sie die Ergänzungen und bringen Sie den Wercker-Build zum Laufen
  6. Bestätigen Sie die Übertragungsübertragung an Codecov
  7. Erzwingen Sie die Codecov-Prüfung im GitHub-Repository und lehnen Sie die Zusammenführung ab, wenn das Ergebnis der Abdeckungsmessung NG ist
  8. Holen Sie sich das Codecov-Abzeichen

GitHub-Repository zu Codecov hinzugefügt

  1. Gehen Sie zu https://codecov.io/gh
  2. Sie können sich mit Ihrem GitHub-, BitBucket- oder GitLab-Konto anmelden ――Dieser Artikel ist GitHub, wählen Sie also GitHub
  3. Die für das ausgewählte Konto verfügbaren Repositorys werden angezeigt. Wählen Sie daher die Ziel-Repositorys aus.
  4. Das Token zum Senden von Abdeckungsinformationen an Codecov wird angezeigt.
  5. Lassen Sie den Bildschirm geöffnet, da Sie den Token später verwenden werden.

Beschreibung für Jacoco-Test zu build.gradle hinzugefügt

  1. Fügen Sie build.gradle Folgendes hinzu.

    //Geben Sie das Jacoco-Plug-In für Codecov an
    apply plugin: 'jacoco'
    
    jacoco {
        //Versionsinformationen sind http://www.eclemma.org/jacoco/Sehen
        toolVersion = "0.8.1"
    }
    
    jacocoTestReport {
        reports {
            xml.enabled = true
            html.enabled = true
        }
    }
    
    //Wenn Sie Gradle Build ausführen, führen Sie auch die Abdeckungsmessung in Jacoco durch
    build.dependsOn jacocoTestReport
    
  2. Im Referenzbeispiel wurde auch die Java-Version von targetCompatibility beschrieben, daher habe ich auch Folgendes hinzugefügt.

    targetCompatibility = 10
    

gesamte build.gradle

Rückblickend, einschließlich der bisherigen Anhäufung.

//Geben Sie das Java-Plug-In an, um main bzw. test zu erstellen
apply plugin: 'java'

//Geben Sie ein Kriegs-Plugin für das Verpacken in den Krieg an
apply plugin: 'war'

//Geben Sie das Anwendungs-Plug-In an, um die ausführbare Klasse und die Klasse mit der ausführbaren Hauptmethode anzugeben.
apply plugin: 'application'
//Geben Sie die Ausführungszielklasse an
mainClassName = 'kentfordevgithub.helloworld.HelloWorld'

version = '0.0.1-SNAPSHOT'
sourceCompatibility = 10
targetCompatibility = 10

//Geben Sie das zu verwendende Repository an
repositories {
    //Verwenden Sie das Maven-Repository
    mavenCentral()
}

dependencies {
    // JUnit
    // https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.2.0'
    // https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.2.0'
    // https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.2.0'
}

//Testlaufeinstellungen in Gradle
test {
    //Einstellungen für die Ausführung von Junit5 mit Gradle, Gradle4.Kann beschrieben werden, weil Gradle Junit 5 von 6 nativ unterstützt
    useJUnitPlatform()
    //Anzahl der parallelen Testgewinde(Anzahl gleichzeitiger Ausführungen)Der Satz(1 Thread für jede Testklasse)
    maxParallelForks = 4
}

//Geben Sie das IDE-Plug-In an, um jede IDE zu unterstützen
apply plugin: 'eclipse'
apply plugin: 'idea'

//Geben Sie das Jacoco-Plug-In für Codecov an
apply plugin: 'jacoco'

jacoco {
    //Versionsinformationen sind http://www.eclemma.org/jacoco/Sehen
    toolVersion = "0.8.1"
}

jacocoTestReport {
    reports {
        xml.enabled = true
        html.enabled = true
    }
}

//Wenn Sie Gradle Build ausführen, führen Sie auch die Abdeckungsmessung in Jacoco durch
build.dependsOn jacocoTestReport

Beschreibung zu wercker.yml hinzugefügt, um Berichterstattung an Codecov zu senden

  1. Fügen Sie dem Buildblock Folgendes hinzu.
  1. Fügen Sie das Codecov-Token zu den Umcker-Variablen der Wercker-Build-Phase hinzu
  2. Öffnen Sie den Zielanwendungsbildschirm von Wercker
  3. Öffnen Sie die Registerkarte Workflows
  4. Öffnen Sie den Pipelines-Build
  1. Öffnen Sie die Registerkarte <> Umgebung
  2. Geben Sie den obigen Umgebungsvariablennamen CODECOV_TOKEN in Key ein.
  1. Geben Sie das Token in Wert ein
  2. Aktivieren Sie Geschützt
  1. Klicken Sie auf die Schaltfläche Hinzufügen, um das Hinzufügen abzuschließen

ganze wercker.yml

Rückblickend, einschließlich der bisherigen Anhäufung.

# This references an OpenJDK container from the
# Docker Hub https://hub.docker.com/_/openjdk/
# Read more about containers on our dev center
# http://devcenter.wercker.com/docs/containers/index.html
box: openjdk:10.0.1-jdk

# defining the dev pipeline
dev:
  steps:
    # A step that executes `gradle bootRun` command
    - script:
      name: run gradle
      code: |
        ./gradlew bootRun

# Build definition
build:
  # The steps that will be executed on build
  steps:
    # A step that executes `gradle build` command
    - script:
        name: run gradle
        code: |
          ./gradlew --full-stacktrace -q --project-cache-dir=$WERCKER_CACHE_DIR build
    - script:
        name: post coverage to codecov
        code: |
          bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN

Erstellen Sie codecov.yml und beschreiben Sie die OK-Bedingungen für die Ergebnisse der Abdeckungsmessung

  1. Erstellen Sie codecov.yml im Stammverzeichnis des Repositorys
  2. Beschreiben Sie Folgendes.

Übernehmen Sie Ihre Ergänzungen und bringen Sie den Wercker-Build zum Laufen

  1. Übernehmen Sie den Zusatz und drücken Sie ihn
  2. Im vorherigen Artikel sollten die automatische Erstellung und der automatische Test mit Wercker verknüpft werden, damit das Senden von Ergebnissen der Abdeckungsmessung an Codecov auch funktioniert.

Bestätigen Sie die Übertragung der Abdeckung an Codecov

  1. Auf dem Bildschirm des Ziel-Repositorys von Codecov wird das Ergebnis der Abdeckungsmessung beim Festschreiben oben hinzugefügt.
  2. Wenn Sie die Details öffnen, können Sie das Ergebnis in einer Grafik usw. sehen.

Erzwingen Sie die Codecov-Prüfung im GitHub-Repository und lehnen Sie die Zusammenführung ab, wenn das Ergebnis der Abdeckungsmessung NG ist

  1. Öffnen Sie Einstellungen im GutHub-Repository

  2. Öffnen Sie Zweige

    • codecov/patch
    • codecov/project

  1. Überprüfen Sie Folgendes unter Statusüberprüfungen vor dem Zusammenführen erforderlich. 6. Nachfolgende Pull-Anforderungen an den Master können nur zusammengeführt werden, wenn das Codecov-Ergebnis in Ordnung ist. Wenn die Übertragung des Prüfergebnisses von Codecov langsam ist, wird Werckers Worflow-Ausführungsergebnis angezeigt Wird sofort wiedergegeben, aber es wird einige Zeit dauern, bis das Prüfergebnis von Codecov wiedergegeben wird. In diesem Fall können Sie die Benachrichtigung manuell auf der Registerkarte "Erstellen" des Bildschirms "Commit-Details" von Codecov ausführen. Codecov-Abzeichen abrufen 1. Sie können einen Link zum Anzeigen des Abzeichens über den Einstellungsbildschirm erhalten
  2. Zeigen Sie das Ergebnis der Abdeckungsmessung oben im Repository an, indem Sie es in README.md beschreiben.

Recommended Posts

Überprüfen Sie die Abdeckung mit Codecov in der Java + Gradle + Wercker-Konfiguration
Führen Sie eine statische Code-Analyse mit Checkstyle mit Java + Gradle durch
Erstellen und testen Sie Java + Gradle-Anwendungen mit Wercker
Erstellen Sie Java mit Wercker
Erstellen Sie mit Gradle ein Java-Multiprojekt
Überprüfen Sie die https-Verbindung mit Java
[Java 8] Doppelte Löschung (& doppelte Überprüfung) mit Stream
Erstellen eines Java-Projekts mit Gradle
Morphologische Analyse in Java mit Kuromoji
Mach HelloWorld mit Java / IntelliJ / Gradle
Ausgabe Testabdeckung mit Klee + Gradle
[Java] Elementexistenzprüfung mit Stream
Überprüfen Sie die Java-Parameter in Kubernetes-Pods
Tweak Markdown mit Java Flexmark-Java
Hallo Welt in Java und Gradle
[Gradle] Erstellen Sie ein Java-Projekt mit einer Konfiguration, die von der Konvention abweicht
Parallelitätsmethode in Java mit grundlegendem Beispiel
CICS-Java-Anwendung ausführen- (3) Build-Management mit Gradle
[JaCoCo (Java Code Coverage)] Verwendung mit NetBeans
Teilen Sie eine Zeichenfolge in Java mit ". (Dot)"
Behandeln Sie große JSON mit Java Lambda
Einführung eines automatisierten Java-Tests mit JUnit 5 + Gradle
Überprüfen Sie die Heap-Nutzung mit Java Flight Recorder
Überprüfen Sie mit Java / Kotlin, ob Dateien unter Windows nicht in die Benutzerkontensteuerung geschrieben werden können
Lesen Sie eine Zeichenfolge in einer PDF-Datei mit Java
Machen Sie die SpringBoot1.5 + Gradle4.4 + Java8 + Docker-Umgebung mit Java11 kompatibel
Erstellen Sie eine CSR mit erweiterten Informationen in Java
Überarbeitetes GUI-Tool, das 2016 mit Java8 + JavaFX erstellt wurde
[Gradle] Build-Vorgänge, die häufig in Java-Projekten ausgeführt werden
Textextraktion in Java aus PDF mit pdfbox-2.0.8
Komfortablere Java-Codeabdeckung mit Jacoco 0.8.0
Erstellen Sie mit Gradle mit VSCode Java → Ausführen
Überprüfen Sie das statische und öffentliche Verhalten in Java-Methoden
Java-Tipps - Erstellen Sie mit Gradle ein Spring Boot-Projekt
Fügen Sie mit Gradle ein Projekt in einen beliebigen Ordner ein
Üben Sie die Arbeit mit Unicode-Ersatzpaaren in Java
[JAVA] [Spring] [MyBatis] Verwenden Sie IN () mit SQL Builder
Überprüfen Sie die Argumente für Methodenaufrufe in Blöcken mit RSpec
Verschlüsseln / Entschlüsseln mit AES256 in PHP und Java
Programmierung mit dem direkten Summentyp in Java (Nachrichten)
Kommen Sie mit Java-Containern in Cloud Run zurecht