Générer JUnit des rapports à partir de la ligne de commande
J'ai une installation d'essai pour un système de nuage qui utilise un mélange de python pour les processus de contrôle de niveau et junit pour les internes d'inspection de l'etat. Essentiellement, je soulève plusieurs VMs au serveur comme le cloud, puis un junit VM qui est un membre de l'informatique en nuage, mais les lecteurs de tests et de contrôles internes de l'état. Notre cadre de gestion du cloud truc est commandé par python et je souhaite maintenir cette.
J'ai une configuration de travail qui va exécuter le JUnit ligne de commande via
java -ea -cp <classpath> org.junit.runner.JUnitCore <tests>
mais ce n'est pas de produire un fichier de rapport. Je sais que la fourmi est capable de produire un rapport xml, mais je ne veux pas impliquer ant dans ce processus (j'ai assez de pièces mobiles déjà).
Est-il un moyen de lancer junit depuis la ligne de commande telle qu'elle produit un rapport?
Idéalement, j'aurais junit tests produisent des rapports xml, python tests produisent des rapports xml, et puis les fusionner ensemble pour la consommation par notre système CI.
Mise à jour: L'exécution de ligne de commande doit prendre en charge Windows, Linux et Mac. Nous ne sommes pas autorisés à expédier externe ant, bien que l'emballage interne ant pourrait être une option.
- Windows ou Unix (en termes de ligne de commande)?
Vous devez vous connecter pour publier un commentaire.
JUnit bibliothèque n'a pas de sortie XML options. Pour réaliser une telle chose, vous aurez besoin d'écrire votre propre RunListener, qui est à l'écoute pour la sortie et dans votre cas, écrire le fichier XML.
Cependant, pour obtenir le fichier XML dans le format correct de sorte qu'il peut être lu par le système CI, je pense qu'il serait beaucoup plus facile de simplement utiliser ant, que ce soit via la ligne de commande à l'aide d'un build.xml (JUnitReport), ou en utilisant l'api java: Comment puis-je utiliser Apache ANT par programmation.
EDIT: d'Abord, nous avons eu quatre options:
Étant donné les restrictions ajoutées par l'OP, on ne peut pas utiliser ant à partir de la ligne de commande, ce qui élimine 1.
Après avoir regardé de plus près à la Fourmi JUnit tâche, il semble être impossible de l'utiliser avec JUnitCore (ajout d'un TestListener), parce que la fourmi utilise le nom de la classe de test directement, de sorte que vous ne pouvez pas faire un pont de classe. De XMLJUnitResultFormatter.java
Ceci élimine 3.
Invoquer Ant par programmation, via l'API Java. Je ne trouve pas de documentation récente sur ce. Cela semble être difficile.
Donc, finalement, je ferais 4, une coutume RunListener, en utilisant le code de XMLJUnitResultFormatter comme base. Et puis, j'avais publier sur github.com, de sorte que cette question pourrait être répondu correctement 🙂