Comment puis-je dire à Gradle d'utiliser mon fichier testng.xml pour les classes de test et la commande?
Je suis tente de faire Gradle exécuter certains tests définis à l'aide d'un testng.xml fichier. Mon testng.xml fichier ressemble à ceci:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="mySuite" verbose="1">
<listeners>
<listener class-name="mypackage.MyListener" />
<listener class-name="mypackage.TestOrderer" />
</listeners>
<test name="Tests">
<classes>
<class name="mytestpackage.CrazyTest1"/>
<class name="mytestpackage.CrazyTest2"/>
<class name="mytestpackage.CrazyTest3"/>
</classes>
</test>
</suite>
Alors pourquoi n'ai-je besoin? Je veux m'assurer que mes tests sont organisés d'une manière qui est défini par les annotations similaire à celle qui a été répertorié ici. Comme vous pouvez le deviner, TestOrderer est un IMethodInterceptor.
Voici le problème, Gradle semble prendre plus de mon testng.xml fichier et en raclant le répertoire de test pour trouver les épreuves qu'il souhaite exécuter. Même si je désactiver cette option, il ne parvient pas à exécuter les méthodes de façon appropriée. Voici ce que je pense devrait fonctionner, mais juste, qui ne fonctionne pas.
test {
useTestNG()
options.suites("src/test/resources/crazyTestNG.xml")
# Adding
# scanForTestClasses = false
# causes zero tests to be executed, since the class names don't end in Test
}
Il semble que ce devrait être une évidence...la fourche TestNG processus et de le laisser courir, mais je ne peux pas comprendre comment le dire à Gradle pour sortir de la voie et simplement l'exécution de mes tests.
source d'informationauteur Mike Cornell | 2011-01-21
Vous devez vous connecter pour publier un commentaire.
J'ai détesté le TestNG soutien dans gradle... Trouvé à la plupart des nations unies-flexable par rapport à l'aide de matières TestNG. Et j'étais fatigué de jongler avec gradle. Ma solution.. Fonctionner TestNG directement à l'aide d'un Gradle tâche
Lequel je le lance depuis la ligne de commande:
gradle runTests
Voici comment vous pouvez configurer une suite de tests (xml) pour être exécuté dans un Gradle tâche:
La Gradle TestNG coureur suppose que si aucun test n'classes sont spécifiés, soit par numérisation pour eux, ou le filtrage sur le nom, puis il doit passer le test de l'exécution entièrement.
Au lieu de cela, il doit examiner si une suite xml a été fourni ou non. Pourriez-vous ajouter une jira problème pour ce problème?
Un travail possible est d'utiliser les options.écouteur pour spécifier les auditeurs, et ne pas utiliser une suite fichier xml à tous:
De cette façon, vous n'avez pas besoin de spécifier les classes de test, et vous pouvez simplement laisser la numérisation de les trouver pour vous.
Cette méthode n'utilise pas votre testng.xml fichier, mais vous pouvez également émuler testNG des groupes d'essai et de commande par la création de test JUnit groupes Gradle tâches et de les ordonner manuellement par la commande de l'exécution de la tâche lorsque vous exécutez votre build:
Ensuite, exécutez votre bâtir comme: gradle testGroupTwo testGroupOne