Если я @Ignore тестовый класс в JUnit4, будет ли @BeforeClass по-прежнему работать?

Краткая справка: я уже несколько дней выслеживаю проблему запуска тестов Maven / Surefire и сузил ее до небольшого числа подозреваемых в тестировании. Я наблюдаю безумие . Я начинаю с mvn clean test : запускается 250 тестов, 0 пропущено. Теперь я перемещаю подозрительный тест в src / test / java и пробую снова: выполнено 146 тестов, 0 пропущено! Вывод Maven не дает никакой подсказки о том, что другие тесты не выполняются, даже с флагом -X .

Это подводит меня к моему вопросу: причина, по которой я называю тест «подозреваемым», заключается в том, что весь класс украшен @Ignore, поэтому я могу предположить, что включение его в мои тестовые источники должно иметь no эффект вообще. Потом мне пришло в голову, что в этих классах есть методы @ BeforeClass / @ AfterClass, которые управляют фиктивным сервером Zookeeper . Раньше это приводило к нестабильному поведению, поэтому у нас есть тесты @Ignored.

Если JUnit запускает код до / после, но игнорирует тесты, я понятия не имею, что может случиться (но, вероятно, это было бы очень плохо). Это происходит? Это должно случиться? Если да, то как я должен сказать «для справки, вот тест, который должен работать, но требует исправления», если он включает @BeforeClass / @AfterClass? Также представляет значительный интерес: что, черт возьми, это делает с Surefire / Maven, что из-за него не связанные тесты падают с лица Земли ?

11
задан Community 23 May 2017 в 10:31
поделиться