TestNG - Exécuter plusieurs classes de test (suite test)

TestNG - Exécuter plusieurs classes de test (test de la suite)

testng-suite-test

Dans ce tutoriel, nous allons vous montrer comment exécuter plusieurs cas de test TestNG (classes) ensemble, aka test de suite.

1. Classes de test

Passez en revue les trois classes de test suivantes.

TestConfig.java

package com.example.testng.examples.suite;

import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;

//show the use of @BeforeSuite and @BeforeTest
public class TestConfig {

    @BeforeSuite
    public void testBeforeSuite() {
        System.out.println("testBeforeSuite()");
    }

    @AfterSuite
    public void testAfterSuite() {
        System.out.println("testAfterSuite()");
    }

    @BeforeTest
    public void testBeforeTest() {
        System.out.println("testBeforeTest()");
    }

    @AfterTest
    public void testAfterTest() {
        System.out.println("testAfterTest()");
    }

}

TestDatabase.java

package com.example.testng.examples.suite;

import org.testng.annotations.Test;

public class TestDatabase {

    @Test(groups = "db")
    public void testConnectOracle() {
        System.out.println("testConnectOracle()");
    }

    @Test(groups = "db")
    public void testConnectMsSQL() {
        System.out.println("testConnectMsSQL");
    }

    @Test(groups = "db-nosql")
    public void testConnectMongoDB() {
        System.out.println("testConnectMongoDB");
    }

    @Test(groups = { "db", "brokenTests" })
    public void testConnectMySQL() {
        System.out.println("testConnectMySQL");
    }

}

TestOrder.java

package com.example.testng.examples.suite;

import org.testng.annotations.Test;

public class TestOrder {

    @Test(groups={"orderBo", "save"})
    public void testMakeOrder() {
      System.out.println("testMakeOrder");
    }

    @Test(groups={"orderBo", "save"})
    public void testMakeEmptyOrder() {
      System.out.println("testMakeEmptyOrder");
    }

    @Test(groups="orderBo")
    public void testUpdateOrder() {
        System.out.println("testUpdateOrder");
    }

    @Test(groups="orderBo")
    public void testFindOrder() {
        System.out.println("testFindOrder");
    }

}

2. Testng.xml

Pour exécuter les classes de test ci-dessus, créez un fichier XML -testng.xml (peut être n'importe quel nom de fichier) et définissez les détails comme ceci:

testng.xml





    
        
            
            
        
    

    
        
            
            
        
    

Sortie

[TestNG] Running:
  C:\example_projects\TestNG\src\test\resources\testng-all.xml

testBeforeSuite()

testBeforeTest()
testFindOrder
testMakeEmptyOrder
testMakeOrder
testUpdateOrder
testAfterTest()

testBeforeTest()
testConnectMongoDB
testConnectMsSQL
testConnectMySQL
testConnectOracle()
testAfterTest()

testAfterSuite()

3. Autres exemples

Voici quelques exemples d'utilisation courants.

3.1 Spécifiez les noms de package au lieu des noms de classe:

testng.xml





    
        
            
        
    

3.2 Spécifiez les méthodes à inclure ou à exclure:

testng.xml





  
    
        
        
            
                
                
                
            
        
    
  

Sortie

[TestNG] Running:
  C:\example_projects\TestNG\src\test\resources\testng.xml

testBeforeSuite()
testBeforeTest()
testMakeOrder
testUpdateOrder
testAfterTest()
testAfterSuite()

3.3 Spécifiez les groupes à inclure ou à exclure:

testng.xml





  
    
        
            
            
        
    

    
        
    
  

Sortie

[TestNG] Running:
  C:\example_projects\TestNG\src\test\resources\testng.xml

testConnectMsSQL
testConnectOracle()