Sonar nicht abholen, Unit-Tests Ergebnisse auch gedacht, Code-Coverage generiert wird
Ich bin mit SonarQuebe 6.2 auf meinem lokalen Rechner, ich Spring Boot Java-8-Projekt mit unit-tests geschrieben, die ich hochladen will zu Sonar für die statische Analyse, die alle zusammen mit der code-Abdeckung.
Code-coverage generiert wird - ich habe meine JaCoCo HTML-Bericht, JUnit XML-test-Dateien generiert werden, aber mein Sonar scheint, Sie zu verpassen Unit-Tests führen auch gedacht, dass die Code-Coverage-ist diese:
pom.xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.6.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.facebook4j</groupId>
<artifactId>facebook4j-core</artifactId>
<version>2.4.8</version>
</dependency>
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.5.1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>default-check</id>
<goals>
<goal>check</goal>
</goals>
</execution>
<execution>
<id>generate-code-coverage-report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Meine sonar-Projekt.Eigenschaften:
sonar.projectKey=org.eventizer:EventizerServer
sonar.projectName=EventizerServer
sonar.projectVersion=1.0
sonar.log.level=DEBUG
sonar.sources=src/main/
sonar.language=java
sonar.java.source=1.8
sonar.sourceEncoding=UTF-8
sonar.java.binaries=target/classes/org/eventizer/eventizerserver/
sonar.java.test.binaries=target/test-classes/org/eventizer/eventizerserver/
sonar.tests=src/test/
sonar.java.coveragePlugin=jacoco
sonar.jacoco.reportPaths=target/jacoco.exec
sonar.junit.reportPaths=target/surefire-reports/
Mir läuft das mvn-Kommando:
mvn clean org.jacoco:jacoco-maven-plugin:Vorbereitung-agent test -Dmaven.test.Versagen.ignorieren=true
Als Ergebnis erhalte ich die target-Verzeichnis mit folgendem Ausgang:
Classes-Verzeichnis, das für sonar.java.binaries
:
Test-classes-Verzeichnis, das für sonar.java.test.binaries
:
Todsichere JUnit-test-reports-Verzeichnis, das für sonar.junit.reportPaths
:
JaCoCo Ausgabeverzeichnis:
JaCoCo HTML-Bericht im Browser:
Danach bin ich laufen sonar-scanner.bat
unten einige wichtige (ich tihnk so) Ausgänge:
Mein Sonar web-Instanz Projekt-Analyse:
Ist und ich wirklich keine Ahnung, warum das passiert ist, da wie es aussieht, wurde alles richtig generiert. Seit gestern denke ich ich habe alles versucht, auf StackOverflow also bitte nicht markieren Sie ihn als "duplizieren".
Dies ist noch merkwürdiger, weil wenn ich auf die Coverage-Metriken für dieses Projekt kann ich sehen, dass 100% Unit-tests bestanden:
InformationsquelleAutor darekg11 | 2017-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut... ich nehme an, das könnte wegen
sonar.sources=src/main/
... Wenn du es alssonar.sources=src
wird, zeigt es wieder.Und, ich finde, es ist Sonar-Parater:
sonar.tests=src/test
zeigt den junit-report in sonar.hier ist meine sonar-Projekt.Eigenschaften:
Und bauen.gradle:
Bauen mit:
InformationsquelleAutor Marslo
Okay, so habe ich etwas entdeckt, dass möglicherweise ein Sonar-bug.
Grundsätzlich dieses Projekt wurde geschoben, um in Sonar für eine lange Zeit mit basic
mvn sonar:sonar
Konfiguration. So war es auch nicht tun-test-Ergebnisse. Nun wollte ich ausführen, dass sich über Jenkins, so füllte ich alle erforderlichen Felder insonar-project.properties
und schob sich überSonar-Runner
nichtmvn sonar:sonar
.Nach dem tun so, als könnten Sie sehen, Unit Tests Quality gate wurde nicht ohne guten Grund. Da in meinem letzten screenshoot gemacht, Sie können sehen, dass in der Tat Unit-Tests bestanden 100.0%.
Ich entscheiden, zu drängen, dass die Analyse auf einem separaten Projekt durch die änderung
projectKey
- Eigenschaft auf etwas anderes und plötzlich ging alles reibungslos.InformationsquelleAutor darekg11