JUnit @Ignorera testanteckning med exempel

โšก Smart sammanfattning

JUnit Ignorera testannotering lรฅter utvecklare hoppa รถver enskilda testmetoder eller hela klasser under byggnationer, vilket tรคcker syntax, orsaker och villkorlig รถverhoppning.pingoch JUnit 5 Migration av funktionshindrade.

  • ???? Hoppa รถver metod: @Ignore ovan @Test kringgรฅr det.
  • ๐Ÿ“ Anledning: @Ignore("reason") visar sammanhang i rapporter.
  • ๐Ÿ“ฆ Hoppa รถver klass: @Ignore i en klass hoppar รถver alla metoder.
  • ๐Ÿงฉ Villkorlig: Kombinera med @Assume i JUnit 4.
  • ๐Ÿš€ JUnit 5: Anvรคnd varianterna @Disabled och EnabledOn.
  • ๐Ÿค– AI-triage: AI flaggar automatiskt fรถr inaktuella ignorerade tester.

JUnit @Ignorera testanteckning

Ibland kan du behรถva att inte kรถra en metod/kod eller Testfall eftersom kodning inte gรถrs fullt ut. Fรถr just det testet, JUnit ger @Strunta i anteckning fรถr att hoppa รถver testet.

Vad รคr JUnit @Ignorera testanteckning

@Ignorera testanteckningen anvรคnds fรถr att ignorera sรคrskilda tester eller grupp av tester fรถr att hoppa รถver byggfelet.

@Strunta i annotering kan anvรคndas i tvรฅ scenarier enligt nedan:

  1. Om du vill ignorera en testmetod, anvรคnd @Ignorera tillsammans med @Test-kommentaren.
  2. Om du vill ignorera alla klassens tester, anvรคnd @Ignorera annotering pรฅ klassnivรฅ.

Du kan ange orsaken till att ett test inaktiverats i den valfria parametern som tillhandahรฅlls av @Ignorera annotering.

Det kommer att hjรคlpa andra utvecklare som arbetar med samma kod, att fรถrstรฅ "varfรถr ett visst test รคr inaktiverat?" Nรคr problemet med det specifika testet รคr รฅtgรคrdat kan du helt enkelt aktivera det genom att ta bort det @Ignorera anteckning.

Junit Test Exempel โ€“ Ignorera

Som diskuterats i ovanstรฅende definition kan du anvรคnda @Ignorera annotering fรถr att ignorera ett test eller en grupp av testet.

Lรฅt oss fรถrstรฅ det med ett enkelt exempel och i nedanstรฅende scenarier:

  1. Skapa en enkel testklass utan att ignorera ett test.
  2. Ignorera en testmetod med @Ignorera annotering.
  3. Ignorera en testmetod med @Ignorera annotering med rรคtt anledning.
  4. Ignorera alla testmetoder med @Ignorera annotering.

Skapa en enkel testklass utan att ignorera ett test

Lรฅt oss skapa en enkel Java klass som skriver ut tvรฅ typer av meddelanden.

  • Fรถrsta metoden skriver ut ett enkelt meddelande och
  • Den andra metoden skriver ut ett "hej"-meddelande

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

JunitTestExample.java

Lรฅt oss skapa en JUnit testklass fรถr att testa JUnitMessage.java.

I detta JUnit testklass,

  • Fรถrsta testet, som heter "testJUnitMessage()" testar "printMessage()"-metoden av ovanstรฅende klass.
  • Pรฅ samma sรคtt det andra testet, som heter "testJUnitHiMessage" testar "testJUnitHiMessageโ€ av ovanstรฅende klass.
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

Lรฅt oss skapa en testlรถparklass fรถr att kรถra 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());							
   }		
}      	

Produktion:

Skapa en enkel testklass utan att ignorera ett test

Skriv ut uttalande pรฅ konsolen:

Junit Hi Message skrivs ut

Hej!Guru99

Junit Message skrivs ut

Guru99

Ignorera en testmetod med @Ignorera annotering

Lรฅt oss skapa ignoreringstest fรถr att inaktivera ett test i exemplet ovan. Fรถr detta mรฅste du anvรคnda @Ignorera i metoden du vill hoppa รถver.

Lรฅt oss gรถra det fรถr testJUnitMessage() frรฅn JunitTestExample.java

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

    }		
}

Produktion:

Lรฅt oss kรถra och verifiera utdata frรฅn ovanstรฅende exempel.

Nedan utdata visar att ett test har hoppats รถver (inaktiverat), se enligt nedan:

Skapa en enkel testklass utan att ignorera ett test

Skriv ut uttalande pรฅ konsolen:

Junit Hi Message skrivs ut

Hej!Guru99

Anvรคnd @ ignorera anteckning med villkor

Lรฅt oss ta exemplet med hur man ignorerar ett test och definierar orsaken till att ignorera tillsammans med det. Som diskuterats ovan, fรถr att ange en orsak har du en valfri parameter i @Ignorera annotering dรคr du kan ange orsaksfรถrklaringen.

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

    }		
}		

Produktion:

Samma som ovan.

Ignorera alla testmetoder med @Ignorera annotering.

Som diskuterats ovan fรถr att ignorera alla tester i klassen, mรฅste du anvรคnda @Ignorera annotering pรฅ klassnivรฅ.

Lรฅt oss รคndra ovanstรฅende exempel fรถr att fรถrstรฅ hur man ignorerar alla tester:

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

    }		
}		

Utgรฅng:

Ignorera testmetoder med @Ignorera anteckning

Skriv ut uttalande pรฅ konsolen:

Eftersom bรฅda testerna hoppade รถver genom att anvรคnda @Ignore pรฅ klassnivรฅ sรฅ skulle inget uttalande skrivas ut pรฅ konsolen.

Vanliga frรฅgor

Hoppar รถver en testmetod eller klass. Visas fortfarande som hoppad รถver i rapporter.

Ja. AI analyserar misslyckandehistorik fรถr att identifiera osรคkra kandidater.

AI infogar @Ignore("reason") frรฅn commit-kontexten.

@Disabled, plus @DisabledOnOs och @EnabledOnJre.

Ja. Markerad som hoppad รถver, separat frรฅn godkรคnd eller underkรคnd.

@DisabledOnOs(OS.WINDOWS) i JUnit 5.

Ja. De samlar pรฅ sig skulder; รฅterkommer till varje utgรฅva.

Ja. @Ignore ovanfรถr klassdeklarationen.

Sammanfatta detta inlรคgg med: