2010-12-23 3 views
4

J'ai un artefact abc qui a quelques tests. J'ai différentes versions de abc dans mon référentiel. Je veux maintenant être en mesure d'exécuter les derniers tests contre la «vieille construction» du projet.Comment exécuter des tests Maven sur un artefact déployé antérieur du même artefact?

J'ai essayé d'ajouter l'artefact lui-même aux dépendances de test, mais cela (bien sûr) se traduit par une erreur de référence cyclique du réacteur Maven lors de la construction des tests via:

compilateur mvn: testCompile mvn surefire: Test

Existe-t-il un moyen intelligent d'exécuter des tests sur un ancien build/artefact précédent?

Dois-je créer un nouveau fichier pom.xml dans lequel je définis l'exécution du test solo? Ou devrais-je ajouter un postfix à mon artefact actuel lors de l'exécution des tests? (Ceci éviterait une erreur de référence cyclique)

Répondre

1

Le problème que je prévois avec ce que vous essayez de faire est que la phase du paquet arrive après la phase de test du cycle de vie de Maven. Ce qui pour moi implique que maven exécute des tests unitaires sur les classes compilées et non sur le fichier jar physique (généré dans la phase package). Vous devrez donc remplacer le contenu du dossier projects/target/classes par les classes du fichier «plus ancien».

3

Séparez les tests dans un module/projet distinct qui dépend des classes testées. Créez ensuite des profils séparés dans lesquels vous modifiez la dépendance sur les anciennes versions.

Questions connexes