[JAVA] Jacoco eingeführt

Führen Sie jacoco ein, um beim Ausführen von TestNG eine Abdeckung zu erhalten.

Abdeckungserfassungsmechanismus

Ich habe nur Jacoco und Cobertura berührt, aber beide haben den folgenden Fluss. Ich kenne die Details nicht.

Daher wäre es sehr enttäuschend, ein Archiv zu erstellen, das auf der vom Instrument neu geschriebenen Klassendatei basiert. Bitte seien Sie vorsichtig.

Vorbereitung

Maven ist einfach. Es ist möglich, die On-the-Fly-Instrumentierung zur Laufzeit zu messen. In einigen Fällen betrug die Abdeckung bei Verwendung von PowerMock jedoch 0%. Aus diesem Grund haben wir die Methode (Offline-Instrumentierung) zum Ändern der Klassendatei im Voraus übernommen.

Ich verwende diesmal NetBeans IDE 8.2, aber ich habe es gewagt, die alte Version 0.8.1 zu installieren, da der Ergebnisbericht aufgrund eines Fehlers auf der IDE-Seite nicht korrekt angezeigt wurde.

pom.xml(dependencies)


<dependency>
    <!--Offline-Instrument funktioniert ohne es nicht-->
    <groupId>org.jacoco</groupId>
    <artifactId>org.jacoco.agent</artifactId>
    <version>0.8.1</version>
    <scope>test</scope>
    <classifier>runtime</classifier>
</dependency>

pom.xml(build/plugins)


<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M3</version>
    <configuration>
        <systemPropertyVariables>
            <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
        </systemPropertyVariables>
        <!--↓ Ohne diese Option wird die Stapelverfolgung nicht angezeigt-->
        <trimStackTrace>false</trimStackTrace>
    </configuration>
</plugin>
<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <!-- 0.8.2 @NetBeans IDE 8.Wenn es 2 ist, wird "Codeabdeckung" nicht aufgezeichnet-->
    <version>0.8.1</version>
    <executions>
        <execution>
            <id>default-instrument</id>
            <goals>
                <goal>instrument</goal>
            </goals>
        </execution>
        <execution>
            <id>default-restore-instrumented-classes</id>
            <goals>
                <goal>restore-instrumented-classes</goal>
            </goals>
        </execution>
        <execution>
            <id>default-report</id>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Testlauf

Testen Sie es in Maven und wenn Sie fertig sind, "zeigen Sie den Bericht an" in Ihrer Codeabdeckung.

Recommended Posts

Jacoco eingeführt
Rails6 jQuery eingeführt