У меня есть набор действительно медленных тестов, для которых требуется неделя. (Они буквально запускают некоторый код без остановок примерно на неделю).
Естественно, ни один разработчик (или даже задание по умолчанию) не хочет запускать эти тесты. Только конкретное отдельное задание сборки имеет время для их запуска. Поэтому эти тесты должны быть отключены по умолчанию.
JUnit categories казался идеальным для этого: я аннотировал те медленные тесты с помощью @Category(SlowTests.class)
. Проблема в том, что они все еще выполняются, потому что:
- Я не хочу поддерживать классы TestSuite, потому что мы добавляем тесты ежедневно. У меня есть 0 классов TestSuite: Maven, IntelliJ и Eclipse просто запускают все тестовые классы из моего модуля. Включая все те медленные тесты.
- Даже если бы у нас были классы TestSuite, большинство разработчиков с открытым исходным кодом все равно попытались запустить все тестовые классы из IntelliJ или Eclipse, подумайте, что они зависают и сдаются при тестировании. Те медленные тесты должны быть исключены по умолчанию. Предпочтительно без дополнительной настройки в IntelliJ или Eclipse.
Как исключить категорию медленных тестов JUnit по умолчанию без использования явного TestSuite?