JUnit @Игнориране на тестова анотация с пример

⚡ Умно обобщение

JUnit Игнорирането на тестовите анотации позволява на разработчиците да пропускат отделни тестови методи или цели класове по време на компилации, като обхваща синтаксиса, причините, условното пропускане.ping, и JUnit 5 Миграция на хора с увреждания.

  • 🚫 Метод на пропускане: @Ignore above @Test го заобикаля.
  • 📝 Причина: @Ignore(“reason”) показва контекст в отчетите.
  • 📦 Пропускане на клас: @Ignore в клас пропуска всеки метод.
  • 🧩 Условно: Комбинирайте с @Assume в JUnit 4.
  • ???? JUnit 5: Използвайте вариантите @Disabled и EnabledOn.
  • 🤖 Сортиране с изкуствен интелект: Изкуственият интелект автоматично маркира остарелите игнорирани тестове.

JUnit @Игнориране на тестовата анотация

Понякога може да поискате да не изпълнявате метод/код или Тестов случай тъй като кодирането не е направено напълно. За този конкретен тест, JUnit осигурява @Игнориране анотация за пропускане на теста.

Какво е JUnit @Игнориране на тестовата анотация

Тестовата анотация @Ignore се използва за игнориране на определени тестове или група от тестове, за да се пропусне неуспешното компилиране.

@Игнориране анотацията може да се използва в два сценария, както е дадено по-долу:

  1. Ако искате да игнорирате тестов метод, използвайте @Ignore заедно с @Test анотация.
  2. Ако искате да игнорирате всички тестове на класа, използвайте @Ignore анотация на ниво клас.

Можете да посочите причината за деактивирането на тест в незадължителния параметър, предоставен от анотацията @Ignore.

Това ще помогне на други разработчици, работещи върху същата част от кода, да разберат „защо даден тест е деактивиран?“ Когато проблемът с този конкретен тест бъде отстранен, можете просто да го активирате, като премахнете @Игнориране на анотацията.

Пример за тест Junit – Игнориране

Както беше обсъдено в горната дефиниция, можете да използвате анотация @Ignore, за да игнорирате тест или група от тестове.

Нека го разберем с помощта на прост пример и в дадените по-долу сценарии:

  1. Създаване на прост тестов клас без игнориране на тест.
  2. Игнорирайте тестов метод с помощта на анотация @Ignore.
  3. Игнорирайте тестов метод с помощта на анотация @Ignore с подходяща причина.
  4. Игнорирайте всички тестови методи с помощта на анотация @Ignore.

Създаване на прост тестов клас без игнориране на тест

Нека създадем проста Java клас, който отпечатва два типа съобщения.

  • Първият метод отпечатва просто съобщение и
  • Вторият метод отпечатва съобщение „здравей“.

JUnitСъобщение.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

Нека създадем a JUnit тест клас за тестване JUnitСъобщение.java.

В този JUnit тестов клас,

  • Първият тест, наречен „тестJUnitMessage()” тества метода “printMessage()” на горния клас.
  • По подобен начин вторият тест, наречен „тестJUnitHiMessage” тества “тестJUnitHiMessage” от по-горен клас.
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

Нека създадем тестов клас за изпълнение на 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());							
   }		
}      	

Изход:

Създаване на прост тестов клас без игнориране на тест

Отпечатайте извлечение на конзолата:

Junit Hi Message се отпечатва

Здравейте!Guru99

Съобщението на Junit се отпечатва

Guru99

Игнорирайте тестов метод с помощта на анотация @Ignore

Нека създадем тест за игнориране, за да деактивираме тест в горния пример. За целта трябва да използвате @Ignore в метода, който искате да пропуснете.

Нека го направим за тестJUnitMessage() на 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());					

    }		
}

Изход:

Нека изпълним и проверим резултата от горния пример.

Изходът по-долу показва, че един тест е пропуснат (деактивиран), вижте както е отбелязано по-долу:

Създаване на прост тестов клас без игнориране на тест

Отпечатайте извлечение на конзолата:

Junit Hi Message се отпечатва

Здравейте!Guru99

Използване на @ ignore анотация с условие

Нека вземем примера как да игнорирате тест и да определим причината за игнорирането заедно с него. Както беше обсъдено по-горе, за да посочите причина, имате един незадължителен параметър в анотацията @Ignore, където можете да посочите причината.

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

    }		
}		

Изход:

Същото като по-горе.

Игнорирайте всички тестови методи с помощта на анотация @Ignore.

Както беше обсъдено по-горе, за да игнорирате всички тестове в класа, трябва да използвате @Ignore анотация на ниво клас.

Нека променим горния пример, за да разберем как да игнорираме всички тестове:

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

    }		
}		

Изход:

Игнорирайте тестови методи с помощта на анотация @Ignore

Отпечатайте извлечение на конзолата:

Тъй като и двата теста са пропуснати чрез използване на @Ignore на ниво клас, така че няма да се отпечата изявление на конзолата.

Въпроси и Отговори

Пропуска тестов метод или клас. Все още се показва като пропуснат в отчетите.

Да. Изкуственият интелект анализира историята на неуспехите, за да маркира нестабилни кандидати.

AI вмъква @Ignore(“reason”) от контекста на commit.

@Disabled, плюс @DisabledOnOs и @EnabledOnJre.

Да. Маркирано като пропуснато, отделно от успешно или неуспешно.

@DisabledOnOs(ОС.WINDOWS) в JUnit 5.

Да. Те натрупват дългове; преглеждайте всяко издание.

Да. @Ignore над декларацията на класа.

Обобщете тази публикация с: