Recharger ou actualiser un Printemps contexte de l'application à l'intérieur d'une méthode d'essai?

J'ai besoin de changer le Printemps des profils qui sont actives dans mes applicationContext au sein d'une seule méthode de ma classe de test, et pour ce faire j'ai besoin d'exécuter une ligne de code avant d'actualiser le concours parce que je suis à l'aide d'un ProfileResolver. J'ai essayé ce qui suit:

@WebAppConfiguration
@ContextConfiguration(locations = {"/web/WEB-INF/spring.xml"})
@ActiveProfiles(resolver = BaseActiveProfilesResolverTest.class)
public class ControllerTest extends AbstractTestNGSpringContextTests {
    @Test
    public void test() throws Exception {
        codeToSetActiveProfiles(...);
        ((ConfigurableApplicationContext)this.applicationContext).refresh();
        ... tests here ...
        codeToSetActiveProfiles(... back to prior profiles ...);
        ... ideally refresh/reload the context for future tests
    }
}

Mais j'obtiens:

java.lang.IllegalStateException: GenericApplicationContext does not support multiple refresh attempts: just call 'refresh' once

DirtiesContext ne fonctionne pas pour moi, parce qu'il est exécuté APRÈS la classe/l'exécution de la méthode, pas avant, et j'ai besoin d'exécuter une ligne de code avant l'exécution de la "rafraîchir" de toute façon.

Des suggestions? J'ai essayé de regarder les auditeurs et les crochets qui sont en cours d'exécution, mais je n'ai pas vu un endroit visible pour insérer moi-même pour obtenir ce comportement.

OriginalL'auteur David E | 2014-07-13