В идеале, я думаю, базу данных следует очищать не перед каждым тестом, а перед какой-то группой из них, например, набор или, может быть, каждый тестовый класс. Одно из найденных предложений выглядит так:
Код: Выделить всё
@Autowired
protected Flyway flyway;
@Before
public void init() {
flyway.clean();
flyway.migrate();
}
Есть ли какой-нибудь хороший способ получить доступ к этому пролетному компоненту из статическом контексте, чтобы это решение работало?
Подвопрос здесь: Flyway имеет команду clean, которая не только очищает данные, но и удаляет все, а затем команда миграции снова выполняет миграцию. Это также кажется накладными расходами. Поскольку миграции все равно проверяются при запуске, я не вижу необходимости сносить и пересобирать все перед каждой тестовой группой. Достаточно просто очистить данные. Не могли бы вы дать несколько советов о том, как этого можно добиться?
Подводя итог, я ищу стандартный способ удаления данных базы данных (а не таблицы, если это возможно) перед каждой группой интеграционных тестов (например, для каждого класса). Я полагаю, что каждый сталкивается с этой задачей при использовании Spring загрузки, поэтому, возможно, в самой платформе есть какое-то хорошее решение.
Спасибо!< /эм>
Подробнее здесь: https://stackoverflow.com/questions/509 ... tion-tests