2017-08-10 3 views
0

Dans mon build.gradle actuelle, je me sers ci-dessous cible pour exécuter un groupe spécifique par ligne de commandeComment passer les groupes TestNG séparés par des virgules (groupe1, groupe2) via le terminal?

test { 
     jvmArgs "-DisParallel=true" 
     useTestNG(){ 
      suites testngxml 
      includeGroups System.properties['groups'] 
     } 
    } 

Maintenant, je veux passer plusieurs groupes séparés par des virgules avec tests gradlew propres -Dgroups = 'groupe1, groupe2 '

toute aide s'il vous plaît

Répondre

1

Pourquoi pas gérer le fichier xml TestNG Suite au lieu d'essayer de gérer cela au niveau des fichiers construire Gradle?

Vous pouvez utiliser un BeanShell dans votre fichier xml de la suite TestNG, qui a la capacité de lire le nom du groupe en tant qu'argument JVM, puis de l'analyser et d'exécuter les tests en conséquence? Ci-dessous un exemple qui accepte un nom de groupe en tant qu'argument JVM, puis permet aux tests de s'exécuter dynamiquement si et seulement s'ils appartiennent au nom de groupe qui a été transmis. Vous pouvez améliorer cela en ajoutant votre logique de partage et en exploitant la même logique containsKey().

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite" parallel="false"> 
    <test name="Test"> 
     <method-selectors> 
      <method-selector> 
       <script language="beanshell"> 
       <![CDATA[whatGroup = System.getProperty("groups"); 
       groups.containsKey(whatGroup); 
       ]]> 
       </script> 
      </method-selector> 
     </method-selectors> 
     <classes> 
      <class name="organized.chaos.GroupsPlayGround" /> 
     </classes> 
    </test> <!-- Test --> 
</suite> <!-- Suite --> 

Pour plus d'informations, vous pouvez consulter les documents suivants:

+0

Nous stockons nos données DB et définissez les groupes là-bas. Et nous passons dynamiquement le groupe par la ligne de commande (** gradlew test -Dgroups = group **). nous n'utilisons pas les groupes mentionnés dans les scripts de test/testng.xml – nurav

+0

@nurav - Le xml que je mentionne dans ma réponse n'a pas de section groups. Il utilise un sélecteur de méthode beanshell pour décider de façon dynamique du groupe à inclure en fonction du groupe que vous avez transmis via l'argument JVM. Donc, je ne comprends pas très bien ce que vous entendez par 'utiliser des groupes mentionnés dans les scripts de test/testng.xml'. Btw .. à quel problème êtes-vous confronté lorsque vous passez dans plusieurs groupes via les arguments JVM dans votre configuration gradle actuelle. Vous voulez élaborer? –