Lancer les tests JUnit avec Cobertura

a marqué ce sujet comme résolu.

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 !

+0 -0

Le projet consiste à écrire une compilateur. J’ai alors un ensemble de fichiers sources pour lesquels je vérifie que le code de retour est bon (selon si le fichier est valide syntaxique, contextuellement, à l’exécution, ou invalide) ainsi que la sortie produite.

J’ai également (entre autre) un script qui mesure le temps d’exécution entre les compilations séquencielle et parallèle pour s’assurer que la seconde est plus efficace.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte