Ich versuche, eine in einem "sauberen" Kontext auszuführen, ohne MyApplicationContextInitializer
ausgeführt zu haben.Wie ApplicationContextInitializers in @SpringBootTest auszuschließen?
Die MyApplicationContextInitializer
ist innerhalb der spring.factories
Datei in einem compile-scope
Abhängigkeit wie folgt enthalten:
org.springframework.context.ApplicationContextInitializer=\
com.eremic.myapp.MyApplicationContextInitializer
Prüfklasse:
@SpringBootTest(webEnvironment = RANDOM_PORT)
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = TestContext.class)
public class UsersControllerTest {}
Test-config:
@SpringBootConfiguration
public class TestContext {}
Gibt es eine Möglichkeit, MyApplicationContextInitializer
von @SpringBootTest
auszuschließen?
Ich habe schon mit excludeFilters @ComponentScan.Filters
müde, aber es hat keine Auswirkungen auf ApplicationContextInitializer.
Auch habe ich versucht, TestContext
mit @SpringBootApplication
mit Anmerkungen versehen und Komponenten Scannen mit scanBasePackages
und/oder exclude = MyApplicationContextInitializer.class
zu beschränken zu verwenden, aber es hat auch keine Wirkung.
Die einzige Möglichkeit, MyApplicationContextInitializer
davon abzuhalten, innerhalb @SpringBootTest
auszuführen, ist, die maven-Abhängigkeit zu entfernen, in der MyApplicationContextInitializer
deklariert wird.
Vielen Dank @ phil-webb, ich habe ein Problem vor ein paar Wochen geöffnet, aber es ist als "Frage" markiert und geschlossen https://github.com/spring-projects/spring-boot/issues/11457 – eremic
Jetzt wieder geöffnet und auf 2.0.0.RC2 ausgerichtet –