Оказывает ли новый JUnit 4.8.1 @Category наборы тестов практически устаревшими? - PullRequest
12 голосов
/ 23 апреля 2010

Заданный вопрос «Как выполнить все тесты, относящиеся к определенной категории?» и ответ , будет ли следующий подход лучше для организации тестирования?

  1. определить основной набор тестов, который содержит все тесты (например, с использованием ClasspathSuite )
  2. разработать достаточный набор категорий JUnit (достаточный означает, что каждый желаемый набор тестов можно идентифицировать по одной или нескольким категориям)
  3. квалифицирует каждый тест соответствующей категорией (категориями)
  4. определяет целевые наборы тестов на основе основного набора тестов и набора категорий

Пример:

  • определяет категории для скорости (медленно, быстро), зависимостей (макет, база данных, интеграция и т. Д.), Функции ( заполнить соответствующие категории ), домена ( заполнить соответствующие категории ) и т. Д.
  • требуют, чтобы каждый тест был надлежащим образом квалифицирован (помечен) соответствующим набором категорий.
  • создайте основной набор тестов с помощью ClasspathSuite (all тесты, найденные в classpath)
  • создание целевых наборов путем квалификации основного набора тестов с категориями, например, набор тестовых наборов, набор тестов для быстрой базы данных, медленная интеграция для набора тестов домена X и т. д.

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

1 Ответ

7 голосов
/ 23 апреля 2010

Одним из компромиссов, которые вы должны учитывать, является ИМХО то, что категории определены в тестах, а наборы - вне. Это означает, что когда вы используете наборы, вы знаете, какие тесты будут выполняться, но при использовании категорий вы не будете знать, если вы не будете проверять тесты или просто запускать их. В то же время, когда вы смотрите на тест с использованием наборов тестов, вы не знаете, в каком наборе он содержится, кроме проверки ваших наборов, но с использованием категорий, вы видите его немедленно.

...