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);
}
}