Post #51
239
Тестирование под различными профилями Spring
Подготовила очередной сервис для перехода на Spring Boot 3.
Тесты прошли успешно, локально сервис запускался успешно. Уже собиралась выкладывать правки на ревью.
Но просматривая файлы для коммита, вспомнила, что на тестовом стенде надо отключить Swagger, и решила проверить, что он действительно не доступен при работе под профилем test. И вот запускаю приложение - а оно не стартует. Нет спрингового бина, который требуется в кастомизированном OpenApiWebMvcResource. При чтении документации выяснилось, что нужный бин не создается при отключении свойства springdoc.api-docs.
Для фикса оказалось достаточно добавить к ресурсу аннотацию @ConditionalOnBean(SpringDocConfiguration.class), чтобы он вообще не создавался при отключенном Swagger.
Но из этой ошибки вынесла для себя важность тестирования приложения под всеми объявленными профилями. Ведь если бы не проверила этот момент локально, то баг выявился бы лишь на тестовом стенде, что потребовало бы отдельного фикса, пересборки дистрибутива, повторного развертывания, а также затронуло бы команду тестирования. А сейчас фикс получился быстрым и безболезненным. Поэтому в список необходимых проверок перед созданием MR для себя добавила также тестирование приложения под разными профилями.
Подготовила очередной сервис для перехода на Spring Boot 3.
Тесты прошли успешно, локально сервис запускался успешно. Уже собиралась выкладывать правки на ревью.
Но просматривая файлы для коммита, вспомнила, что на тестовом стенде надо отключить Swagger, и решила проверить, что он действительно не доступен при работе под профилем test. И вот запускаю приложение - а оно не стартует. Нет спрингового бина, который требуется в кастомизированном OpenApiWebMvcResource. При чтении документации выяснилось, что нужный бин не создается при отключении свойства springdoc.api-docs.
Для фикса оказалось достаточно добавить к ресурсу аннотацию @ConditionalOnBean(SpringDocConfiguration.class), чтобы он вообще не создавался при отключенном Swagger.
Но из этой ошибки вынесла для себя важность тестирования приложения под всеми объявленными профилями. Ведь если бы не проверила этот момент локально, то баг выявился бы лишь на тестовом стенде, что потребовало бы отдельного фикса, пересборки дистрибутива, повторного развертывания, а также затронуло бы команду тестирования. А сейчас фикс получился быстрым и безболезненным. Поэтому в список необходимых проверок перед созданием MR для себя добавила также тестирование приложения под разными профилями.
- ✍ 1
- 🤔 1