Créer une suite de tests JUnit avec l'exemple : @RunWith @SuiteClasses

Dans Junit, la suite de tests nous permet de regrouper tous les cas de test de plusieurs classes en un seul endroit et de les exécuter ensemble.

Pour exécuter le test de la suite, vous devez annoter une classe à l'aide des annotations mentionnées ci-dessous :

  1. @Runwith(Suite.class)
  2. @SuiteClasses(test1.class,test2.class……) ou@Suite.SuiteClasses ({test1.class, test2.class……})

Avec les annotations ci-dessus, toutes les classes de test de la suite commenceront à s'exécuter une par une.

Étapes pour créer une suite de tests et Test Runner

Étape 1) Créez une classe de test simple (par exemple MyFirstClassTest) et ajoutez une méthode annotée avec @test.

Étapes pour créer une suite de tests et un exécuteur de tests

Étape 2) Créez une autre classe de test à ajouter (par exemple MySecondClassTest) et créez une méthode annotée avec @test.

Étapes pour créer une suite de tests et un exécuteur de tests

Étape 3) Pour créer une testSuite, vous devez d'abord annoter la classe avec @RunWith(Suite.class) et @SuiteClasses(class1.class2…..).

Étapes pour créer une suite de tests et un exécuteur de tests

Étape 4) Créez une classe Test Runner pour exécuter notre suite de tests comme indiqué ci-dessous ;

Étapes pour créer une suite de tests et un exécuteur de tests

Explication du code :

  • Ligne de code 8 : Déclarer la méthode principale du test de classe qui exécutera notre test JUnit.
  • Ligne de code 9 : Exécuter des cas de test à l'aide de JunitCore.runclasses qui prend le nom de la classe de test comme paramètre (dans l'exemple ci-dessus, vous utilisez TestSuiteExample.class présenté à l'étape 3).
  • Ligne de code 11 : Traitement du résultat à l'aide de la boucle for et impression du résultat échoué.
  • Ligne de code 13 : Impression du résultat réussi.

Sortie : Voici le résultat qui montre un test réussi sans trace d'échec, comme indiqué ci-dessous :

Étapes pour créer une suite de tests et un exécuteur de tests

Exemple de suite de tests JUnit

Envisagez un plus complex exemple

JunitTest.java

JunitTest.java est une classe simple annotée avec @Courir avec et @Suite annotations. Vous pouvez répertorier le nombre de .classes de la suite en tant que paramètres, comme indiqué ci-dessous :

package guru99.junit;		
import org.junit.runner.RunWith;		
import org.junit.runners.Suite;		

@RunWith(Suite.class)				
@Suite.SuiteClasses({				
  SuiteTest1.class,
  SuiteTest2.class,  			
})		

public class JunitTest {				
			// This class remains empty, it is used only as a holder for the above annotations		
}

SuiteTest1.java

SuiteTest1.java est une classe de test ayant une méthode de test pour imprimer un message comme indiqué ci-dessous. Vous utiliserez cette classe comme suite dans la classe mentionnée ci-dessus.

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Test;		

public class SuiteTest1 {				

    public String message = "Saurabh";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Test(expected = ArithmeticException.class)					
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing ");					
        junitMessage.printMessage();			

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message = "Hi!" + message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					
        System.out.println("Suite Test 2 is successful " + message);							
    }		
}		

SuiteTest2.java

SuiteTest2.java est une autre classe de test similaire à SuiteTest1.java avoir une méthode de test pour imprimer un message comme indiqué ci-dessous. Vous utiliserez cette classe comme suite dans JunitTest.java.

package guru99.junit;		

import org.junit.Assert;		
import org.junit.Test;		

public class SuiteTest2 {				
   	

    @Test		
    public void createAndSetName() {					
        		

        String expected = "Y";					
        String actual = "Y";					

        Assert.assertEquals(expected, actual);					
        System.out.println("Suite Test 1 is successful " + actual);							
    }		

}		

Sortie

Après avoir exécuté JunitTest.java qui contient une suite ayant test1.java et test2.java, vous obtiendrez le résultat ci-dessous :

Sortie SuiteTest2.Java

Sortie SuiteTest2.Java

Résumé

Dans ce didacticiel, vous avez appris les bases du harnais de tests et des suites de tests dans details avec un exemple.

  • Faisceau de test ou automatisation Essais est un logiciel ou un ensemble de logiciels qui permet à un utilisateur de tester des données avec plusieurs entrées et de contrôler l'exécution
  • Le harnais de test permet en fait à un framework de test qui effectue tout le travail d'exécution de tests à l'aide d'une bibliothèque de tests et de génération d'un rapport de test.
  • Dans Junit, la suite de tests nous permet de regrouper tous les cas de test de nombreuses classes en un seul endroit et de les exécuter ensemble.