"Aucune information sur la couverture par test." De Sonar avec Jacoco Ant build
Je suis en utilisant Ant, Jacoco et Sonar. Quand je lance mon build Sonar me dit que "Aucune information à propos de la couverture par test." et le Sonar tableau de bord de ma couverture de résultats, mais je ne peux pas descendre pour voir le code. Toutefois, le rapport HTML généré par Jacoco ne comprennent forage vers le bas dans le code. C'est ma couverture tâche:
<jacoco:coverage destfile="${coverage.output.file}" >
<junit printsummary="on"
errorProperty="test.failed"
failureProperty="test.failed"
haltonfailure="yes"
fork="true">
<formatter type="brief" usefile="false" />
<formatter type="xml" />
<classpath>
<path refid="test.build.class.path"/>
<pathelement location="${test.bin.dir}"/>
</classpath>
<batchtest todir="${results.dir}">
<fileset dir="${test.bin.dir}">
<include name = "**/**/*Test.class"/>
</fileset>
</batchtest>
</junit>
</jacoco:coverage>
<jacoco:report>
<executiondata>
<file file="${coverage.output.file}"/>
</executiondata>
<structure name="${ant.project.name}">
<classfiles>
<fileset dir="${bin.dir}"/>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${src.dir}"/>
</sourcefiles>
</structure>
<html destdir="${coverage.results.dir}"/>
</jacoco:report>
</target>
Et mon Sonar cible ressemble à ceci:
<target name="sonar" depends = "run">
<property name="sonar.jdbc.url" value="..." />
<property name="sonar.jdbc.username" value="...r" />
<property name="sonar.jdbc.password" value="..." />
<property name="sonar.projectKey" value="org.codehaus.sonar:example-java-ant" />
<property name="sonar.projectName" value="${ant.project.name} (ant)" />
<property name="sonar.projectVersion" value="1.0" />
<property name="sonar.language" value="java" />
<property name="sonar.sources" value="${src.dir}" />
<property name="sonar.binaries" value="${bin.dir},${test.bin.dir}" />
<property name="sonar.libraries" value="${lib.dir}/*.jar" />
<property name="sonar.dynamicAnalysis" value="reuseReports" />
<property name="sonar.surefire.reportsPath" value="${results.dir}" />
<property name="sonar.java.coveragePlugin" value="jacoco" />
<property name="sonar.jacoco.reportPath" value="${coverage.output.file}" />
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<classpath>
<fileset dir="${lib.dir}" includes="sonar-ant-task-2.0.jar"/>
</classpath>
</taskdef>
<sonar:sonar />
</target>
Personne ne sait ce que je suis absent?
source d'informationauteur Paul Grenyer
Vous devez vous connecter pour publier un commentaire.
Il semble que vous n'avez pas réglé le sonar.des tests de la propriété dire Sonar où trouver le code source de vos tests unitaires. Voir http://docs.sonarqube.org/display/SONAR/Analysis+Paramètres.
David RACODON | SonarSource
La
sonar.test
propriété doit être mis à l'épreuve-classes. Nous avons de la suite dans notre pom maven. Pour ANT-vous faire quelque chose de similaire:Incidemment il y a quelques autres propriétés utilisées dans le présent:
jacoco-maven-plugin
et lasonar.jacoco.reportPath
est un bien utilisé dans ce plugin.David Racodon réponse (https://stackoverflow.com/a/16645108/1019307) a été une fois de les corriger, mais dans la mi-2014 SonarQube arrêté l'exécution de tests dans le cadre de la sonar exécution (http://www.sonarqube.org/unit-test-execution-in-sonarqube/). Donc pourquoi pointant vers la source de test ne fonctionne plus.