Intellij Вызывает AfterAllCallback Между Каждым Классом Интеграционного Теста

0

Вопрос

Контекст:

Я использую последние версии соответствующих проектов:

  • Версия Junit5 5.8.1
  • Intellij-Конечная идея 2021.2.3
  • maven-отказоустойчивая версия 3.0.0-M5

Мой проект строится без ошибок при запуске mvn clean install с моего терминала. Я использую плагин maven-failsafe-для выполнения своих интеграционных тестов локально и в CI таким образом.

Существует множество надежных вариантов документирования, некоторые из них унаследованы от родительских pom, но отказоустойчивость ведет себя так, как я ожидаю.

Проблема:

Если я попытаюсь запустить все интеграционные тесты из Intellij, Intellij, похоже, вызовет AfterAllCallback расширения между каждым тестовым классом. Это поведение отличается от того, что я вижу в failsafe, который, похоже, заключает все тесты в один тестовый контейнер, вызывая только AfterAllCallback расширения один раз в конце. Я очень редко запускаю более одного интеграционного тестового класса из среды IDE, поэтому я никогда не сталкивался с этим раньше.

Вопросы:

  • Ведет ли себя неправильно Intellij или я установил для этого надежную настройку?
  • Можно ли настроить Intellij таким образом, чтобы он соответствовал отказоустойчивому поведению?
1

Лучший ответ

0

AfterAllCallback указывается для запуска после всех тестов каждого тестового класса. В https://junit.org/junit5/docs/current/api/org.junit.jupiter.api/org/junit/jupiter/api/extension/AfterAllCallback.html это заявлено:

предоставьте дополнительное поведение для тестирования контейнеров один раз после всех тестов в контейнере

Если (и я не проверял) отказоустойчивость работает по-другому, это противоречит спецификации.

2021-11-18 06:16:59

Указан ли "тестовый контейнер" как класс? Термины кажутся двусмысленными.
JKomoroski

В стандартном случае тестовый контейнер-это класс, а отдельные методы-тесты. Такие концепции, как параметризованные и динамические тесты, меняют это; там один метод также может быть контейнером. Однако в вашем сценарии это не кажется уместным.
johanneslink

Похоже, мне нужно добавить несколько исправлений к некоторым тестовым расширениям, которые ведут себя неправильно. Следует ли довести этот вопрос до сведения Юпитера или отказоустойчивости?
JKomoroski

Я бы поставил на Безотказность в качестве виновника. Но это всего лишь предположение.
johanneslink

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................