Bonjour,
Je travaille en Java avec Maven et je souhaite évaluer la couverture de tests de mon code. Pour cela, j’utilise sur les conseils des profs Cobertura. Seulement, je passe aussi par le plugin exec
pour lancer des scripts de test personnalisés, du type :
1 2 3 4 5 | HOME=$(cd "$(dirname "$0")"/../../../../ && pwd) CP_FILE="$HOME"/target/generated-sources/classpath.txt CP="$HOME"/target/generated-classes/cobertura:"$HOME"/target/test-classes/:"$HOME"/target/classes/:$(cat "$CP_FILE") java -enableassertions -cp "$CP" ma_classe "$@" |
Or il apparaît que Cobertura gère mal ce genre de scripts (le mauvais exécutable est parfois appelé). L’idée serait alors, plutôt que d’appeler mvn cobertura:cobertura
, de compiler le projet, d’instrumentaliser les classes avec Cobertura (mvn cobertura:instrument
), de lancer les tests manuellement puis de générer le rapport.
Mes scripts sont bien pris en compte, vu que j’ajoute en tête du CLASSPATH
les classes instrumentalisée (target/generated-classes/cobertura
). Mais j’ignore comment procéder de même pour les tests unitaires (JUnit). En effet, le script suivant génère un rapport avec une couverture nulle, signe que les tests unitaires ne sont pas pris en compte :
1 2 3 4 5 6 7 | mvn cobertura:clean mvn cobertura:instrument mvn surefire:test # Génération du rapport # ... |
Merci !