Ich benötige meine Spring Boot WebApplication, um in JUnit @ neu zu starte

Nicht ins Detail gehen, ich habe ein Problem, wenn ich meine Junit-Tests auf einmal durchführe. Wenn ich sie Klasse für Klasse leite, ist alles großartig! Ansonsten habe ich Probleme, weil ich meine WebApplication nicht zwischen junit-test-class neu starten kann. Dadurch habe ich Zookeeper-Server-Clients in meiner Webanwendung, die hängen, nachdem ich den Zookeeper-Server zwischen den Klassen heruntergefahren und gestartet habe. Es kann eine Weile dauern, bis diese Zookeeper-Server-Clients erneut mit dem Server synchronisiert werden. Dies führt zu unvorhersehbarem Verhalten ...

Gibt es eine Möglichkeit, meine SpringBootServletInitializer-Klasse neu zu starten, indem Sie eine Funktion in den Methoden @BeforeClass und @AfterClass eines JUnit-Tests aufrufen?

WebApplication.java

@ComponentScan
@EnableAutoConfiguration
@EnableWebMvc
@EnableHyperMediaSupport(...)
@PropertySources(...)
public class WebApplication extends SpringBootServletInitializer
{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)
    {
        return builder.sources(WebApplication.class);
    }

    @Override
    protected WebApplicationContext run(SpringApplication application)
    {
        application.getSources().remove(ErrorPageFilter.class);
        return (WebApplicationContext) application.run();
    }

    public static void main(String[] args)
    {
        SpringApplication.run(WebApplication.class, args);
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage