Pergunta

Eu estou usando AbstractTransactionalSpringContextTests para executar testes de integrações de primavera. O contexto da primavera é carregado apenas uma vez e, em seguida, todos os testes são executados. Como eu faço a mesma coisa se eu quero que meus testes para estar em muitas classes e pacotes.

É claro que, no contexto da primavera deve ser carregado apenas uma vez para todos os meus testes (em todas as classes e pacotes), e não uma vez por classe ou pacote.

Foi útil?

Solução

Como os Javadocs AbstractSingleSpringContextTests (uma das superclasses de AbstractTransactionalSpringContextTests) estado:

Esta classe irá armazenar em cache contextos com base em uma chave de contexto: Normalmente, a matriz de cadeia locais de configuração descrevendo os descritores de recursos Primavera que compõem o contexto. A menos que o método setDirty () é chamado por um teste, o contexto não será recarregado, mesmo entre diferentes subclasses deste teste. Isto é particularmente benéfico se o seu contexto é lento para construir, por exemplo, se você estiver usando o Hibernate e o tempo necessário para carregar os mapeamentos é um problema.

Seu contexto é armazenada em cache, de modo que todos os outros testes que são executados dentro do mesmo carregador de classe (ou seja - todos os outros testes que são executados durante o mesmo teste) vai usar o contexto em cache. Você não precisa fazer qualquer configuração adicional - deve ser feito para você já. Se você não tem certeza sobre isso, ou desejo de solucionar problemas, basta ligar o log para org.springframework e você deve ver uma abundância de logging úteis sobre quando o contexto está sendo carregado, qual arquivo, como; etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top