есть ли в JUnit условная аннотация, чтобы пометить несколько пропущенных тестовых случаев? - PullRequest
21 голосов
/ 23 мая 2011

Насколько я знаю, чтобы пропустить тестовый пример, самое простое, что нужно сделать, - это удалить аннотацию @Test, но делать это в большом количестве тестовых случаев довольно громоздко. Мне было интересно, есть ли в JUnit какая-либо аннотация для условного отключения нескольких тестовых случаев.

Ответы [ 4 ]

28 голосов
/ 23 мая 2011

Трудно понять, нужна ли вам аннотация @Ignore или вы действительно хотите условно отключить определенные тесты JUnit. Условное отключение тестовых случаев выполняется с помощью Assume.

Вы можете прочитать об предположениях в заметках о выпуске для junit 4.5

Здесь также есть довольно хорошая нить в стеке над потоком: Условно игнорируем тесты в JUnit 4

8 голосов
/ 23 мая 2011

Как говорят другие люди, @Ignore игнорирует тест.

Если вы хотите что-то условное, посмотрите на предположения о junit.

http://junit.sourceforge.net/javadoc/org/junit/Assume.html

Это работает, просматривая условие и выполняя тест, только если это условие удовлетворяется. Если условие ложно, тест фактически "игнорируется".

Если вы поместите это в вспомогательный класс и вызовете его из ряда ваших тестов, вы сможете эффективно использовать его по своему усмотрению. Надеюсь, это поможет.

5 голосов
/ 23 мая 2011

Вы можете использовать аннотацию @Ignore, которую вы можете добавить к одному тесту или тестовому классу, чтобы деактивировать его.

Если вам нужно что-то условное, вам нужно будет создатьПользовательский тестовый прогон, который вы можете зарегистрировать с помощью

@RunWith(YourCustomTestRunner.class)

. Вы можете использовать его для определения пользовательской аннотации, которая использует язык выражений или ссылается на системное свойство, чтобы проверить, следует ли запускать тест.Но такого зверя не существует из коробки.

2 голосов
/ 23 мая 2011

Если вы используете JUnit 4.x, просто используйте @Ignore. Смотри здесь

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