8
votes

Comment ferais-je produire un rapport de test Junit pour les tests Groovy, adapté à la consommation de Jenkins / Hudson?

J'ai écrit plusieurs tests XMLUnit (qui correspondent à la framework Junit) à Groovy et peuvent les exécuter facilement sur la ligne de commande conformément à la Groovy DOCO Mais je ne comprends pas bien ce que je dois faire pour cela pour produire la sortie XML nécessaire par Jenkins / Hudson (ou autre) pour afficher les résultats de la passe / de l'échec (comme ) et un rapport détaillé des erreurs, etc. (comme Ceci ). (excuses aux propriétaires d'images)

Actuellement, mon script Kickoff est ceci: p> xxx pré>

et cela produit quelque chose comme ceci: p>

Running all XSL Tests...
....
Time: 4.141

OK (4 tests)


3 commentaires

Utilisez-vous des cadres de test? Qu'utilisez-vous pour construire le projet?


Y a-t-il une aversion pour utiliser un outil de construction comme Gradle / Maven / Ant?


@Eric C'est un projet latéral et cherchait à obtenir quelque chose de haut et de courir rapidement. Cependant, je peux descendre le chemin d'apprentissage et utiliser Gradle comme dans ma sphère de "choses à apprendre".


4 Réponses :


0
votes

Depuis que vous demandez aux fins de l'exposition du rapport à Jenkins / Hudson, je suppose que vous avez un Maven / Ant / etc Constrayez que vous êtes capable de courir. Si c'est vrai, la solution est simple.

Tout d'abord, il n'y a pratiquement aucune différence entre les tests Junit Groovy et Java. Donc, tout ce que vous avez à faire est d'ajouter la tâche / plugin junit de fourmi / maven à votre construction et d'exécuter vos tests Junit Groovy (tout comme vous le feriez s'ils étaient écrits en Java). Cette exécution créera des rapports de test. De là, vous pouvez simplement configurer votre construction Hudson / Jenkins pour consulter le répertoire dans lequel les rapports de test sont créés lors du processus de construction.


1 commentaires

Non, je n'utilise pas la structure de construction telle que Maven ou AnfT, il s'agit simplement d'une collection de tests unitaires. Il n'y a pas de construction, seule une série de tests avec l'espoir d'avoir une passation / défaillance à chaque fois qu'il est initié.



0
votes

Vous pouvez écrire votre propre <-href="http://junit.org/apidocs/org/junit/runner/notification/runlistener.html" rel="nofollow"> Runlistener (ou < Un href = "http://grails.org/doc/latest/api/org/codehaus/groovy/grails/test/junit4/listener/suiterunlistener.html" rel = "nofollow"> suitéRunlistener ). Cela vous oblige toujours à écrire du code, mais il est beaucoup plus propre que le script que vous avez fourni un lien vers. Si vous souhaitez, je peux vous envoyer le code d'un journaliste Junit j'ai écrit en JavaScript pour Jasmine Et vous pouvez le traduire dans Groovy.


0 commentaires

2
votes

Je trouve le moyen le plus rapide de bootstrap Ce truc est avec gradle :

# build.gradle
apply plugin: 'groovy'

task initProjectStructure () << {
    project.sourceSets.all*.allSource.sourceTrees.srcDirs.flatten().each { dir ->
        dir.mkdirs()
    }
}


2 commentaires

Merci pour la petite poussée d'utiliser la gradle. Alors que ma réponse (clairement) a résolu mon problème, la Bounty 50PT est à vous.


Merci :) - Je pense que vous allez adorer les grades.



4
votes

Après un petit piratage, j'ai pris la suggestion d'Eric Wendelin et je suis parti avec la gradle.

Pour ce faire, j'ai déplacé mes tests d'unité Groovy dans la structure de répertoire requise SRC / Test / Groovy /, avec les ressources de support (entrée et Fichiers XML de sortie attendus) Entrer dans le répertoire / SRC / Test / Ressources / Ressources. P>

Toutes les bibliothèques requises ont été configurées dans le fichier Build.Gradle, comme décrit (dans son intégralité) ici: P>

systemProp.http.proxyHost=10.xxx.xxx.xxx
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=passwd


0 commentaires