Краткая справочная информация. Я уже несколько дней искал пробную проблему Maven/Surefire, и я сузил ее до небольшого числа подозреваемых в тестах. Поведение, которое я вижу, безумно. Я начинаю с mvn clean test
: 250 тестов, 0 пропущенных. Теперь я переведу подозрительный тест в src/test/java
и повторю попытку: 146 тестов, 0 пропущенных! Выход Maven не дает понять, что другие тесты не выполняются даже с флагом -X
.
Это подводит меня к моему вопросу: причина, по которой я называю "подозреваемый" в тестировании, состоит в том, что весь класс украшен @Ignore, поэтому я бы предположил, что включение его в мои тестовые источники не должно иметь никакого эффекта. Затем мне пришло в голову - у этих классов есть методы @BeforeClass/@AfterClass, которые управлять фиктивным сервером Zookeeper. Это привело к пошатнутому поведению, поэтому у нас есть тесты @Ignored.
Если JUnit работает с кодом до/после, но игнорирует тесты, я понятия не имею, что может случиться (но это, вероятно, будет очень плохо). Это происходит? Это должно произойти? Если да, то как я могу сказать "для справки, здесь тест, который должен работать, но нуждается в исправлении", когда он включает @BeforeClass/@AfterClass? Также представляет значительный интерес: что, черт возьми, это делает Surefire/Maven, что он вызывает несвязанные тесты с падать с лица Земли?