2017-08-31 6 views
0

Est-il possible d'exécuter une suite de tests TestNG intégrée dans un fichier JAR via une tâche de test Gradle?Spécification de l'option xmlpathinjar TestNG avec la tâche de test Gradle

Mon projet comprend des ensembles JARed de tests TestNG qui ont un fichier testng.xml intégré définissant les tests à exécuter dans le fichier JAR. Est-il possible que Gradle se réfère à ce XML embarqué lors de l'exécution des tests TestNG? De la ligne de commande, j'utilise l'option xmlpathinjar.

Répondre

1

Je ne pense pas que cela puisse être fait en utilisant la tâche Gradle TestNG. Je ne pouvais pas trouver un soutien dans le TestNGOptions

Au lieu d'utiliser

test{ 
    useTestNG() 
} 

vous pouvez essayer de passer par ce poste sur le SO How can I tell Gradle to use my testng.xml file for Test Classes and Ordering? et emploient peut-être l'approche détaillée ici https://stackoverflow.com/a/28868416

Mais quand vous utilisez une tâche Gradle personnalisée pour exécuter vos tests TestNG, veuillez vous assurer que vous ajoutez une référence à la ExitCodeListener

Voici un exemple

task ('myTask', type: JavaExec) { 
    main = 'org.testng.TestNG' 
    classpath = sourceSets.main.runtimeClasspath + sourceSets.test.runtimeClasspath 
    args = ["-xmlpathinjar", "suites/mysuite.xml", "-listener", "org.testng.TestNG\$ExitCodeListener"] 
} 

Plus de détails sur la raison pour laquelle les ExitCodeListener besoins à renvoyer, se trouvent here