JUnit @Ігнорувати тестову анотацію з прикладом

⚡ Розумний підсумок

JUnit Ігнорування анотацій тестів дозволяє розробникам пропускати окремі методи тестування або цілі класи під час збірки, охоплюючи синтаксис, причини, умовний пропускping та JUnit 5 Міграція інвалідів.

  • 🚫 Метод пропуску: @Ignore вище @Test обходить це.
  • ???? Причина: @Ignore(“reason”) показує контекст у звітах.
  • 📦 Пропустити клас: @Ignore для класу пропускає кожен метод.
  • 🧩 Умовний: Поєднати з @Assume у JUnit 4.
  • ???? JUnit 5: Використовуйте варіанти @Disabled та EnabledOn.
  • 🤖 ШІ-соріювання: Штучний інтелект автоматично позначає застарілі ігноровані тести.

JUnit @Ignore Test Annotation

Іноді вам може знадобитися не виконувати метод/код або Тестовий випадок оскільки кодування виконано не повністю. Для цього конкретного тесту, JUnit забезпечує @Ігнорувати анотація про пропуск тесту.

Що таке JUnit @Ігнорувати тестову анотацію

Тестова анотація @Ignore використовується для ігнорування певних тестів або групи тестів, щоб пропустити помилку збірки.

@Ігнорувати анотацію можна використовувати у двох сценаріях, як наведено нижче:

  1. Якщо ви хочете ігнорувати метод тестування, використовуйте @Ignore разом із анотацією @Test.
  2. Якщо ви хочете ігнорувати всі тести класу, використовуйте анотацію @Ignore на рівні класу.

Ви можете вказати причину вимкнення тесту в необов’язковому параметрі, наданому анотацією @Ignore.

Це допоможе іншим розробникам, які працюють над тим самим фрагментом коду, зрозуміти, «чому певний тест вимкнено?» Коли проблема цього конкретного тесту буде вирішена, ви можете просто ввімкнути його, видаливши @Ігнорувати анотацію.

Приклад тесту Junit – ігнорувати

Як зазначено у визначенні вище, ви можете використовувати анотацію @Ignore, щоб ігнорувати тест або групу тестів.

Давайте зрозуміємо це на простому прикладі та в наведених нижче сценаріях:

  1. Створення простого тестового класу без ігнорування тесту.
  2. Ігноруйте метод тестування за допомогою анотації @Ignore.
  3. Ігноруйте метод тестування за допомогою анотації @Ignore з належної причини.
  4. Ігнорувати всі тестові методи за допомогою анотації @Ignore.

Створення простого тестового класу без ігнорування тесту

Давайте створимо простий Java клас, який друкує два типи повідомлень.

  • Перший спосіб друкує просте повідомлення та
  • Другий спосіб друкує повідомлення «привіт».

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

Давайте створимо а JUnit тест клас перевірити JUnitMessage.java.

В цьому JUnit тестовий клас,

  • Перший тест під назвою «testJUnitMessage()” перевіряє метод “printMessage()” класу вище.
  • Подібним чином другий тест під назвою «testJUnitHiMessage” тестує “тест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 Привіт

Привіт!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 Привіт

Привіт!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 на рівні класу, тому жодний оператор не друкувався на консолі.

Поширені запитання

Пропускає метод або клас тестування. У звітах все одно відображається як пропущений.

Так. Штучний інтелект аналізує історію невдач, щоб виявити ненадійних кандидатів.

ШІ вставляє @Ignore(“reason”) з контексту коміту.

@Disabled, а також @DisabledOnOs та @EnabledOnJre.

Так. Позначено як пропущено, окремо від зарахованого чи не зарахованого.

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

Так. Вони накопичують борги; переглядайте кожен реліз.

Так. @Ignore вище оголошення класу.

Підсумуйте цей пост за допомогою: