Spring boot и Flyway: очистите данные базы данных перед интеграционными тестамиJAVA

Программисты JAVA общаются здесь
Anonymous
Spring boot и Flyway: очистите данные базы данных перед интеграционными тестами

Сообщение Anonymous »

Я создаю службу REST, используя среду загрузки Spring (v2.0.2), где у меня выполняются интеграционные тесты в базе данных. Я много гуглил и есть море статей про очистку базы данных перед тестами, но к сожалению я нахожу их либо неэффективными, либо хаком и не для Spring загрузки. Не могли бы вы, пожалуйста, потерпеть и предложить хороший способ решения этой проблемы?

В идеале, я думаю, базу данных следует очищать не перед каждым тестом, а перед какой-то группой из них, например, набор или, может быть, каждый тестовый класс. Одно из найденных предложений выглядит так:

Код: Выделить всё

@Autowired
protected Flyway flyway;

@Before
public void init() {
flyway.clean();
flyway.migrate();
}
который перестраивает базу данных перед каждым тестом и явно неэффективен. Изменение этого контекста на статический и использование @BeforeClass не работает, поскольку Spring не вводит статические поля.

Есть ли какой-нибудь хороший способ получить доступ к этому пролетному компоненту из статическом контексте, чтобы это решение работало?

Подвопрос здесь: Flyway имеет команду clean, которая не только очищает данные, но и удаляет все, а затем команда миграции снова выполняет миграцию. Это также кажется накладными расходами. Поскольку миграции все равно проверяются при запуске, я не вижу необходимости сносить и пересобирать все перед каждой тестовой группой. Достаточно просто очистить данные. Не могли бы вы дать несколько советов о том, как этого можно добиться?

Подводя итог, я ищу стандартный способ удаления данных базы данных (а не таблицы, если это возможно) перед каждой группой интеграционных тестов (например, для каждого класса). Я полагаю, что каждый сталкивается с этой задачей при использовании Spring загрузки, поэтому, возможно, в самой платформе есть какое-то хорошее решение.

Спасибо!< /эм>

Подробнее здесь: https://stackoverflow.com/questions/509 ... tion-tests

Вернуться в «JAVA»