Подтвердить что ты не робот

Как заставить Junit 4 игнорировать базовый тестовый класс?

У меня есть базовый класс для многих тестов, в котором есть некоторые вспомогательные методы, которые им нужны.

Он сам по себе не имеет никаких тестов, но JUnit (в eclipse) вызывает тестовый бегун на нем и жалуется, что нет методов для тестирования.

Как я могу заставить его игнорировать этот класс?

Я знаю, что я мог бы добавить метод dummyTest, который бы разрешил проблему, но он также появится для всех дочерних классов.

Предложения?

4b9b3361

Ответ 1

Используйте для @Ignore аннотации. Он также работает на занятиях. См. Это:

@Ignore public class IgnoreMe {
                        @Test public void test1() { ... }
                        @Test public void test2() { ... }
                }

Кроме того, вы можете аннотировать класс содержащих методы тестирования с помощью @Ignore и ни один из содержащихся тестов не будет выполняться.

Источник: JUnit JavaDoc

Ответ 2

Как примечание, я всегда рекомендую указать причину игнорирования:

@Ignore("This test will prove bug #123 is fixed, once someone fixes it")

Я надеюсь, что форматировщик junit xml report, используемый при выполнении тестов из ant, в один прекрасный день включит игнорируемый счетчик (и причины) вместе с пропуском, сбоем и ошибкой.

Ответ 3

Сделать класс abstract должен быть достаточным для JUnit 4. Если он не работает, дважды проверьте, какую версию JUnit вы используете.

Это также связывает ваше намерение, что это всего лишь фрагмент теста.

Он также запрещает JUnit считать тесты в классе "игнорируемыми" (поэтому конечный счет игнорируемых тестов будет тем, что вы ожидаете).

В качестве альтернативы переименуйте класс. Большинство бегунов используют имя класса, чтобы определить, какие классы являются тестами и какие помощники. В Maven с настройками по умолчанию вам просто нужно убедиться, что базовый класс не начинается или не заканчивается на Test и не заканчивается на TestCase (http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html)

Ответ 4

Есть 2 варианта:

  • Вам следует создать базовый тестовый класс abstract, который достаточно получил Junit4. Если вы используете атрибут @Igonre, он покажет его как проигнорированный тест (и добавит его к общему количеству тестов).

  • Вы можете изменить имя тестового класса, в котором у него не будет слова Test (с учетом регистра) в начале или в конце имени теста/или слова TestCase в конец.

BTW: @Igonre для другого варианта использования, когда вы хотите проигнорировать конкретный тест.