1
votes

Comment exécuter plusieurs méthodes dans une classe avant d'exécuter les méthodes dans une autre classe lors de l'exécution parallèle

Je suis confronté au problème suivant: j'ai créé deux classes qui incluent @Tests avec l'attribut de priorité:

@Test( priority = 1 )
public void testB1() {
    System.out.println("testB1");
}

@Test( priority = 2 )
public void testB2() {
    System.out.println("testB2");
}

@Test( priority = 3 )
public void testB3() {
    System.out.println("testB3");
}

... et ...

@Test( priority = 1 )
public void testA1() {
    System.out.println("testA1");
}

@Test( priority = 2 )
public void testA2() {
    System.out.println("testA2");
}

@Test( priority = 3 )
public void testA3() {
    System.out.println("testA3");
}

J'ai mis les deux classes sous un seul test dans testng.xml mais quand j'exécute le test, il ordonnera mes @Tests en fonction des priorités des deux classes:

testA1 testB1 testA2 testB2 testA3 testB3 J'attends le résultat suivant:

testA1 testA2 testA3 testB1 testB2 testB3 Ma question est la suivante: comment puis-je éviter de commander mes @Tests basés sur les deux classes et d'exécuter des @Tests uniquement à partir d'une seule classe à la fois?


0 commentaires

3 Réponses :


0
votes

vous pouvez placer les méthodes de ClassExample1 sur un groupe, puis utiliser dependOnGroup, par exemple:

public class classExample1 {
@Test(groups = GROUP_EXAMPLE)
public void testEx1() {
     System.out.println("testEx1");
}
}

public class classExample2 {
@Test
public void testEx2(dependsOnGroups = GROUP_EXAMPLE) {
     System.out.println("testEx2");
}
}

De cette façon, testEx1 s'exécutera toujours avant testEx2. Et vous pouvez utiliser la priorité pour granuler encore plus vos résultats.


0 commentaires

0
votes

Vous pouvez exécuter plusieurs classes de test en utilisant un fichier xml (vous pouvez créer un fichier xml en faisant un clic droit sur le projet)

https://howtodoinjava.com/testng/testng-executing-parallel- tests / Ce lien vous aidera à résoudre ce problème


0 commentaires

0
votes

Pour exécuter toutes les méthodes de test d'une classe d'abord, puis pour les autres classes, la structure du fichier testng.xml doit être modifiée. Vous devez spécifier les méthodes de test de chaque classe dans l'ordre de leur exécution.

Sans cette modification, le fichier XML s'exécutera selon la priorité, par exemple testA1 () puis testB1().

Veuillez trouver le fichier XML requis pour réaliser les tests en classe:

<suite name="REGRESSION_TEST_SET" thread-count="1" parallel="tests" >
<test  name="AUTOMATION" group-by-instances="true">
 <classes>
        <class name="ClassA" />
          <methods>
                <include name="testA1"/>
                <include name="testA2"/>
                <include name="testA3"/>
          </methods>
       </class>  
        
        <class name="ClassB" />
          <methods>
                <include name="testB1"/>
                <include name="testB2"/>
                <include name="testB3"/>
          </methods>
       </class>  
    </classes>
</test>


0 commentaires