JUnit @Ignora annotazione di test con esempio

โšก Riepilogo intelligente

JUnit Ignora l'annotazione di test consente agli sviluppatori di saltare singoli metodi di test o intere classi durante le build, coprendo sintassi, motivi, salto condizionalepinge JUnit 5. Migrazione disabilitata.

  • ๐Ÿšซ Metodo salta: @Ignora quanto sopra @Test lo aggira.
  • ๐Ÿ“ Motivo: @Ignore(โ€œreasonโ€) mostra il contesto nei report.
  • ๐Ÿ“ฆ Salta la lezione: L'annotazione @Ignore su una classe ignora ogni metodo.
  • ๐Ÿงฉ Condizionale: Combinare con @Assume in JUnit 4.
  • ๐Ÿš€ JUnit 5: Utilizzare le varianti @Disabled e EnabledOn.
  • ๐Ÿค– Triage dell'IA: L'IA segnala automaticamente i test obsoleti ignorati.

JUnit @Ignora annotazione di prova

A volte potrebbe essere necessario non eseguire un metodo/codice o Test Case perchรฉ la codifica non รจ stata eseguita completamente. Per quel particolare test, JUnit fornisce @Ignorare annotazione per saltare il test.

Cosa รจ JUnit @Ignora l'annotazione del test

L'annotazione di test @Ignore viene utilizzata per ignorare particolari test o gruppi di test al fine di ignorare l'errore di compilazione.

@Ignorare l'annotazione puรฒ essere utilizzata in due scenari come indicato di seguito:

  1. Se vuoi ignorare un metodo di test, usa @Ignore insieme all'annotazione @Test.
  2. Se vuoi ignorare tutti i test della classe, usa l'annotazione @Ignore a livello di classe.

Puoi fornire il motivo per disabilitare un test nel parametro facoltativo fornito dall'annotazione @Ignore.

Aiuterร  altri sviluppatori che lavorano sullo stesso pezzo di codice a capire "perchรฉ un particolare test รจ disabilitato?" Quando il problema di quel particolare test viene risolto, puoi semplicemente abilitarlo rimuovendo @Ignora annotazione.

Esempio di test Junit: Ignora

Come discusso nella definizione precedente, puoi utilizzare l'annotazione @Ignore per ignorare un test o un gruppo di test.

Capiamolo utilizzando un semplice esempio e negli scenari indicati di seguito:

  1. Creare una semplice classe di test senza ignorare un test.
  2. Ignora un metodo di test utilizzando l'annotazione @Ignore.
  3. Ignora un metodo di test utilizzando l'annotazione @Ignore con il motivo appropriato.
  4. Ignora tutti i metodi di test utilizzando l'annotazione @Ignore.

Creare una semplice classe di test senza ignorare un test

Creiamo un semplice Java classe che stampa due tipi di messaggio.

  • Il primo metodo stampa un messaggio semplice e
  • Il secondo metodo stampa un messaggio "ciao".

JUnitMessaggio.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;					
}    		
    		
}		

Esempio di test Junit.java

Creiamo un JUnit lezione di prova da testare JUnitMessaggio.java.

In questa JUnit lezione di prova,

  • Il primo test, denominato โ€œtestJUnitMessage()โ€ verifica il metodo โ€œprintMessage()โ€ della classe precedente.
  • Allo stesso modo il secondo test, denominato โ€œtestJUnitHiMessageโ€ verifica โ€œprovaJUnitHiMessageโ€ della classe precedente.
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

Creiamo una classe test runner per eseguire 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());							
   }		
}      	

Produzione:

Creazione di una classe di test semplice senza ignorare un test

Stampa la dichiarazione sulla console:

Il messaggio Junit Hi รจ in stampa

Ciao!Guru99

Il messaggio Junit รจ in stampa

Guru99

Ignora un metodo di test utilizzando l'annotazione @Ignore

Creiamo ignora test per disabilitare un test nell'esempio precedente. Per questo, devi utilizzare @Ignore nel metodo che vuoi saltare.

Facciamolo per provaJUnitMessaggio() di JunitTestExample.java

Esempio di 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());					

    }		
}

Produzione:

Eseguiamo e verifichiamo l'output dell'esempio precedente.

L'output sotto mostra che un test รจ stato saltato (disabilitato), vedere come indicato di seguito:

Creazione di una classe di test semplice senza ignorare un test

Stampa la dichiarazione sulla console:

Il messaggio Junit Hi รจ in stampa

Ciao!Guru99

Utilizzando @ ignora l'annotazione con Condizione

Prendiamo l'esempio di come ignorare un test e definiamo insieme ad esso il motivo dell'ignorarlo. Come discusso in precedenza, per fornire un motivo hai un parametro facoltativo nell'annotazione @Ignore in cui puoi fornire la dichiarazione del motivo.

Esempio di 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());					

    }		
}		

Produzione:

Come sopra.

Ignora tutti i metodi di test utilizzando l'annotazione @Ignore.

Come discusso in precedenza, per ignorare tutti i test in classe, รจ necessario utilizzare l'annotazione @Ignore a livello di classe.

Modifichiamo l'esempio sopra per capire come ignorare tutti i test:

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());					

    }		
}		

Uscita:

Ignora metodi di test utilizzando l'annotazione @Ignore

Stampa la dichiarazione sulla console:

Poichรฉ entrambi i test sono stati saltati utilizzando @Ignore a livello di classe, nessuna istruzione verrebbe stampata sulla console.

DOMANDE FREQUENTI

Salta un metodo o una classe di test. Nei report viene comunque visualizzato come saltato.

Sรฌ. L'intelligenza artificiale analizza la cronologia dei fallimenti per individuare i candidati inaffidabili.

L'IA inserisce @Ignore("reason") dal contesto del commit.

@Disabled, oltre a @DisabledOnOs e @EnabledOnJre.

Sรฌ. Contrassegnato come saltato, separatamente dalla valutazione di superamento o non superamento.

@DisabledOnOs(OS.WINDOWS) in JUnit 5.

Sรฌ. Accumulano debiti; rivedete ogni rilascio.

Sรฌ. @Ignora la dichiarazione della classe sopra.

Riassumi questo post con: