Как заставить Junit 4 игнорировать базовый тестовый класс? - PullRequest
51 голосов
/ 20 января 2009

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

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

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

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

Предложения

Ответы [ 4 ]

84 голосов
/ 20 января 2009

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

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

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

Источник: JUnit JavaDoc

26 голосов
/ 29 января 2009

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

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

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

16 голосов
/ 26 марта 2013

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

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

Это также предотвращает подсчет JUnit тестов в классе как «игнорируемых» (поэтому итоговое количество игнорируемых тестов будет таким, как вы ожидаете).

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

4 голосов
/ 26 декабря 2017

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

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

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

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

...