Configuração e redução do estado complexo do banco de dados com Hibernate / Spring / JUnit

Tenho uma classe de teste unitário que requer uma configuração bastante extensa do banco de dados antes que os métodos de teste individuais possam ser executados. Essa configuração leva muito tempo: por motivos que, espero que não sejam relevantes para a pergunta em questão, eu preciso preencher o banco de dados programaticamente em vez de um dump SQ

O problema que tenho é com a desmontagem. Como posso reverter facilmente todas as alterações feitas na fase de instalação do banco de dado

Atualmente, estou usando o suporte ao Teste Transacional Hibernate + Spring, de modo que meus métodos de teste individuais sejam agrupados em transaçõe

ma solução seria executar a configuração do banco de dados em cada método de teste, de modo que a instalação do banco de dados fosse revertida automaticamente. No entanto, os métodos de teste levariam uma eternidade para serem executados, pois cada método precisaria re-preparar o banco de dado

Algumas outras idéias? Basicamente, estou procurando uma maneira de executar minha configuração de banco de dados, executar meus testes individuais (cada um envolvido em uma transação que é revertida após a execução) e depois reverter a instalação inicial de db. Alguma idéia de como fazer isso funcionar da maneira Hibernate / Spring / Junit? Existe um comando equivalente "largar todas as tabelas" do Hibernate?

questionAnswers(8)

yourAnswerToTheQuestion