Игнорировать тесты junit через @ExcludeCategory в наборе тестов - PullRequest
6 голосов
/ 17 июня 2011

Я хочу запустить тестовые наборы 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 действительно работал с наборами?

Ура!

1 Ответ

3 голосов
/ 18 июня 2011

@ExcludeCategory должно работать с @Category.

Убедитесь, что ваши игнорируемые методы / классы помечены @Category(IgnoreForSpecialReasonA.class).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...