JUnit @Ignorer l'annotation de test avec exemple

โšก Rรฉsumรฉ intelligent

JUnit L'annotation ยซ Ignorer les tests ยป permet aux dรฉveloppeurs d'ignorer des mรฉthodes de test individuelles ou des classes entiรจres lors des compilations, en couvrant la syntaxe, les raisons et l'ignorance conditionnelle.ping et JUnit 5 Migration dรฉsactivรฉe.

  • ๐Ÿšซ Mรฉthode de saut : @Ignorer ci-dessus @Test le contourne.
  • ๐Ÿ“ Raison: @Ignore(โ€œreasonโ€) affiche le contexte dans les rapports.
  • ๐Ÿ“ฆ Sรฉcher les cours : L'annotation @Ignore sur une classe ignore toutes les mรฉthodes.
  • ๐Ÿงฉ Conditionnel: Combinez avec @Assume dans JUnit 4.
  • ๐Ÿš€ JUnit 5: Utilisez les variantes @Disabled et EnabledOn.
  • ๐Ÿค– AI Triage: L'IA signale automatiquement les tests obsolรจtes et ignorรฉs.

JUnit @Ignorer l'annotation du test

Parfois, vous devrez peut-รชtre ne pas exรฉcuter une mรฉthode/un code ou Cas de test car le codage nโ€™est pas entiรจrement fait. Pour ce test particulier, JUnit offre aux @Ignorer annotation pour ignorer le test.

Qu'est-ce que le JUnit @Ignorer l'annotation de test

L'annotation de test @Ignore est utilisรฉe pour ignorer des tests particuliers ou un groupe de tests afin d'ignorer l'รฉchec de la construction.

@Ignorer L'annotation peut รชtre utilisรฉe dans deux scรฉnarios comme indiquรฉ ci-dessous :

  1. Si vous souhaitez ignorer une mรฉthode de test, utilisez @Ignore avec l'annotation @Test.
  2. Si vous souhaitez ignorer tous les tests de classe, utilisez l'annotation @Ignore au niveau de la classe.

Vous pouvez indiquer la raison de la dรฉsactivation d'un test dans le paramรจtre facultatif fourni par l'annotation @Ignore.

Cela aidera les autres dรฉveloppeurs travaillant sur le mรชme morceau de code ร  comprendre ยซ pourquoi un test particulier est dรฉsactivรฉ ? ยป Lorsque le problรจme de ce test particulier est rรฉsolu, vous pouvez simplement l'activer en supprimant @Ignorer l'annotation.

Exemple de test Junit โ€“ Ignorer

Comme indiquรฉ dans la dรฉfinition ci-dessus, vous pouvez utiliser l'annotation @Ignore pour ignorer un test ou un groupe de tests.

Comprenons-le ร  l'aide d'un exemple simple et dans les scรฉnarios ci-dessous :

  1. Crรฉer une classe de test simple sans ignorer un test.
  2. Ignorez une mรฉthode de test ร  l'aide de l'annotation @Ignore.
  3. Ignorez une mรฉthode de test utilisant l'annotation @Ignore pour une bonne raison.
  4. Ignorez toutes les mรฉthodes de test utilisant l'annotation @Ignore.

Crรฉer une classe de test simple sans ignorer un test

Crรฉons un simple Java classe qui imprime deux types de messages.

  • La premiรจre mรฉthode imprime un message simple et
  • La deuxiรจme mรฉthode imprime un message ยซ salut ยป

JUnitMessage.java

package guru99.junit;		

public class JUnitMessage {				

    private String message;					

    public JUnitMessage(String message) {					
        this.message = message;							
    }		
    		
public String printMessage(){		
    		
    System.out.println(message);					
    		
    return message;					
}    		
    		
public String printHiMessage(){		
    		
    message="Hi!"+ message;							
    		
    System.out.println(message);					
    		
    return message;					
}    		
    		
}		

Exemple de test Junit.java

Crรฉons un JUnit classe de test ร  tester JUnitMessage.java.

Dans ce nouvel article concernant notre nouveau projet JUnit classe d'essai,

  • Premier test, nommรฉ ยซ testJUnitMessage() ยป teste la mรฉthode ยซ printMessage() ยป de la classe ci-dessus.
  • De mรชme le deuxiรจme test, nommรฉ ยซ testJUnitHiMessage ยป teste ยซ testJUnitHiMessage ยป de la classe ci-dessus.
package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Test		
    public void testJUnitMessage() {					

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

    }		

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

    }		
}		

TestRunner.java

Crรฉons une classe d'exรฉcuteur de tests pour exรฉcuter JunitTestExample.java

package guru99.junit;		

import org.junit.runner.JUnitCore;		
import org.junit.runner.Result;		
import org.junit.runner.notification.Failure;		

public class TestRunner {				
			public static void main(String[] args) {									
      Result result = JUnitCore.runClasses(JunitTestExample.class);				
			for (Failure failure : result.getFailures()) {							
         System.out.println(failure.toString());					
      }		
      System.out.println("Result=="+result.wasSuccessful());							
   }		
}      	

Sortie :

Crรฉer une classe de test simple sans ignorer un test

Imprimer la dรฉclaration sur la console :

Junit Salut Le message est en cours d'impression

Hello!Guru99

Le message Junit est en cours d'impression

Guru99

Ignorer une mรฉthode de test ร  l'aide de l'annotation @Ignore

Crรฉons un test ignorรฉ pour dรฉsactiver un test dans l'exemple ci-dessus. Pour cela, vous devez utiliser @Ignore dans la mรฉthode que vous souhaitez ignorer.

Faisons-le pour testerJUnitMessage() de JunitTestExample.java

Exemple de test Junit.java

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Ignore		
    @Test		
    public void testJUnitMessage() {					

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

    }		

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

    }		
}

Sortie :

Exรฉcutons et vรฉrifions la sortie de l'exemple ci-dessus.

La sortie ci-dessous montre qu'un test est ignorรฉ (dรฉsactivรฉ), voir comme indiquรฉ ci-dessous :

Crรฉer une classe de test simple sans ignorer un test

Imprimer la dรฉclaration sur la console :

Junit Salut Le message est en cours d'impression

Hello!Guru99

Utilisation de l'annotation @ignorer avec Condition

Prenons l'exemple de la faรงon d'ignorer un test et dรฉfinissons en mรชme temps la raison de son ignorance. Comme indiquรฉ ci-dessus, pour fournir une raison, vous disposez d'un paramรจtre facultatif dans l'annotation @Ignore oรน vous pouvez fournir la raison.

Exemple de test Junit.java

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Ignore("not yet ready , Please ignore.")					
    @Test		
    public void testJUnitMessage() {					

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

    }		

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

    }		
}		

Sortie :

Comme ci-dessus.

Ignorez toutes les mรฉthodes de test utilisant l'annotation @Ignore.

Comme indiquรฉ ci-dessus, pour ignorer tous les tests en classe, vous devez utiliser l'annotation @Ignore au niveau de la classe.

Modifions l'exemple ci-dessus pour comprendre comment ignorer tous les tests :

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

@Ignore		
public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Test		
    public void testJUnitMessage() {					

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

    }		

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

    }		
}		

Sortie:

Ignorer les mรฉthodes de test ร  l'aide de @Ignore Annotation

Imprimer la dรฉclaration sur la console :

Comme les deux tests ont รฉtรฉ ignorรฉs en utilisant @Ignore au niveau de la classe, aucune instruction ne sera imprimรฉe sur la console.

FAQ

Ignore une mรฉthode de test ou une classe. Indique toujours comme ignorรฉe dans les rapports.

Oui. L'IA analyse l'historique des รฉchecs pour repรฉrer les candidats peu fiables.

L'IA insรจre @Ignore(โ€œreasonโ€) ร  partir du contexte de commit.

@Disabled, plus @DisabledOnOs et @EnabledOnJre.

Oui. Marquรฉ comme ignorรฉ, indรฉpendamment de la rรฉussite ou de l'รฉchec.

@DisabledOnOs(OS.WINDOWS) dans JUnit 5.

Oui. Ils accumulent des dettes ; il faut revoir chaque nouvelle version.

Oui. Ignorez la mention @Ignorer ci-dessus dans la dรฉclaration de classe.

Rรฉsumez cet article avec :