Я разрабатываю приложение, которое в течение долгого времени использовалось UTC Timezone как для сервера, так и для базы данных. Недавно мы попытались обновить прошлой весной Boot 3.3.9. Это закончилось тем, что тесты не удались случайным образом - все связаны с проблемами часового пояса (значения, перемещенные по количеству часов в соответствии с моим часовым поясом). Проблемы появляются только в средах разработчиков, по какой -то причине CI -сервер работает гладко (он использует официальное изображение Docker MySQL).
часовой застрой устанавливается в статическом блоке внутри Spring Boot @springbootapplication класс:
Код: Выделить всё
static { //this is loaded both for IT tests and application
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
//other similar initializers here
}
< /code>
Я попытался изменить версию Hibernate, MySQL-Connector-J и Tomcat-DBCP. Я загрузил таблицы часового пояса и убедился, что тесты выполняются с @@ session.time_zone
, равным UTC . Пробое ConnectTimeZone = UTC . Я обновил свой экземпляр MySQL. Но если я не откачусь к Spring Boot 3.3.9, я получаю тестирование интеграции с провалом. < /P>
Наиболее запутанной частью является случайность. Что может измениться во время выполнения интеграционных тестов, которые могут изменить поведение часового пояса в Spring Boot System?
Подробнее здесь:
https://stackoverflow.com/questions/796 ... rking-with