Запустите приложение Spring Boot один раз, прежде чем запускать тесты Cucumber. - PullRequest
0 голосов
/ 19 марта 2020

Я пишу несколько BDD тестов с использованием Cucumber для моего приложения Spring Boot (v2.2.1), и оно работает нормально.

Однако я столкнулся с некоторой проблемой производительности, потому что приложение запускается / остановлено для каждого сценария в файле возможностей: я использую БД в памяти с Liquibase, поэтому для каждого сценария это выполняется (занимает несколько секунд).

Конечно, в настоящее время гарантируется, что мой сценарий ios очень хорошо изолирован. Возможно, в некоторых случаях я захочу такого поведения, но сейчас большинство моих файлов функций выиграют от однократной настройки. Так как каждый сценарий устанавливает разные записи (без перекрытия), которые ему нужны в БД в памяти, я теоретически мог выполнить свой сценарий ios параллельно на одном запущенном приложении Spring Boot.

Я видел https://blog.codecentric.de/en/2017/02/integration-testing-strategies-spring-boot-microservices-part-2/, но для этого требуется сначала создать приложение, а затем запустить его из банки.

Нет ли способа сделать то же самое, но с приложением, запущенным один раз из бегуна Cucumber? какой-нибудь пример где-нибудь?

1 Ответ

0 голосов
/ 20 марта 2020

Благодаря ссылке @mpkorstanje мне удалось найти проблему: при попытке воспроизвести предложение в моем проекте я обнаружил, что одна из отсканированных конфигураций имела аннотацию @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS). Так что это была проблема , Теперь мне нужно посмотреть на обходной путь, подобный тому, который предлагается здесь: @ DirtiesContext разрушает контекст после каждого сценария тестирования огурца, а не класса

...