Ich verwende Sonarqube als Ausgabe für die Testergebnisse, während Maven und Jacoco zum Testen der Testfälle.maven jacoco plugin erzeugt keinen Coverage-Bericht
Sonarqube Version 5.4 Maven Version 3.3.9 Jacoco Version 0.7
Das ist mein pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.sonarqube</groupId>
<artifactId>example-ut-maven-jacoco</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Java :: UT Coverage with JaCoCo :: Maven</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<!-- Minimal supported version is 4.7 -->
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.6.201602180812</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<executions>
<!--
Prepares the property pointing to the JaCoCo runtime agent which
is passed as VM argument when Maven the Surefire plugin is executed.
-->
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
<!--
Sets the name of the property containing the settings
for JaCoCo runtime agent.
-->
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
<!--
Ensures that the code coverage report for unit tests is created after
unit tests have been run.
-->
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
<!-- Sets the output directory for the code coverage report. -->
<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<!-- Sets the VM argument line used when unit tests are run. -->
<argLine>${surefireArgLine}</argLine>
<!-- Skips unit tests if the value of skip.unit.tests property is true -->
<skipTests>${skip.unit.tests}</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</project>
ich auch diese link here folgenden bin aber für die Dateien, die ich bin mit dem diejenigen hier enter link description here.
Dieses, wie ich das Projekt zum Testen bauen
mvn clean test
mvn clean verify
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install
mvn sonar:sonar
Die buiild erfolgreich zurückkehrt, aber es gibt keine Codeabdeckung erzeugt Ich habe dies auch durch localhost Sonarqube gehen: 9000/es zeigt 0,00% Codeabdeckung, aber die Unit Test werden alle als erfolgreich "es ist erfolgreich" dargestellt.
Haben Sie eine Idee, was zu diesem Problem führen könnte? Auch ich bin immer noch neu in all dem.
Warum laufen 'mvn clean test' und' mvn clean verify' ... und 'mvn clean ... install'? Es wäre ausreichend, eine einzelne "mvn clean install" auszuführen und "mvn sonar: sonar" zu verwenden. – khmarbaise
@khmarbaise Ich lese, dass Sie zuerst testen und verifizieren sollten? oder was sind nur die notwendigen Schritte, um das zu erreichen, was ich will? Ich habe alles versucht, was ich gelesen habe. – makingitwork
Hallo, Welche Java-Version verwenden Sie? –