Я хочу запустить тестовые наборы Junit, содержащие различные тестовые классы.
Из всех тестов я хочу исключить методы испытаний, аннотированные определенной аннотацией.
Мне известна аннотация @Ignore, но я не хочу использовать ее здесь, потому что хочу иметь возможность игнорировать разные методы тестирования, если я вызываю тесты из разных наборов тестов.
Я попробовал это, и оно не работает.
При запуске моего комплекта без @ExcludeCategory (IgnoreMeForSpecialReason.class) запускается такое же количество тестов, что и при @ExcludeCategory (IgnoreMeForSpecialReason.class)
Чтобы проиллюстрировать это:
Этот люкс
//version 1
@RunWith(Categories.class)
@ExcludeCategory(IgnoreForSpecialReasonA.class)
@SuiteClasses({
// add your test classes here
Module1Test.class,
Module2Test.class,
Module3Test.class
})
public class MySuiteA
{
}
выполняет столько же тестов, сколько и эта версия пакета:
//version 2
@RunWith(Categories.class)
//@ExcludeCategory(IgnoreForSpecialReasonA.class)
@SuiteClasses({
// add your test classes here
Module1Test.class,
Module2Test.class,
Module3Test.class
})
public class MySuiteA
{
}
Один метод тестирования Module1Test аннотирован аннотацией @IgnoreForSpecialReasonA. Этот метод должен быть пропущен в версии 1 моего примера, но он запущен.
Как я могу добиться того, чтобы @ExcludeCategory действительно работал с наборами?
Ура!