Spring JUnit-Test nicht laden voller Anwendungskontext
Hallo, ich versuche, so spring junit-Testfälle... und habe dafür meine volle Anwendungs-Kontext geladen werden. Aber der junit test nicht initialisiert wird, die vollständige Anwendung Kontext.
Test Klasse:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class MongoDbRepositoryTest {
@Value("${spring.datasource.url}")
private String databaseUrl;
@Inject
private ApplicationContext appContext;
@Test
public void testCRUD() {
System.out.println("spring.datasource.url:" + databaseUrl);
showBeansIntialised();
assertEquals(1, 1);
}
private void showBeansIntialised() {
System.out.println("BEEEAAANSSSS");
for (String beanName : appContext.getBeanDefinitionNames()) {
System.out.println(beanName);
}
}
Ausgabe:
spring.datasource.url:${spring.datasource.url}
BEEEAAANSSSS
org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalRequiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.annotation.internalPersistenceAnnotationProcessor
org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor
org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor
Main Application-Klasse Anmerkungen:
@ComponentScan(basePackages = "com.test")
@EnableAutoConfiguration(exclude = { MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class })
@EnableMongoRepositories("com.test.repository.mongodb")
@EnableJpaRepositories("com.test.repository.jpa")
@Profile(Constants.SPRING_PROFILE_DEVELOPMENT)
public class Application { ...
Daher sollte die überprüfung aller die spring bean im Paket com.test und laden Sie diese auch in der Datei ApplicationContext für die Junit testcase. Aber aus dem Ausgang der Bohnen initalised es scheint nicht zu sein, dies zu tun.
Für eine Sache, Ihre Anwendung Klasse ist nur dann aktiv, für ein Profil, das man die Einstellung nicht aktiv zu sein in der Prüfung.
Dank Steve Merkte.
Dank Steve Merkte.
InformationsquelleAutor Shivam Sinha | 2015-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die Anmerkungen in Ihren test-Klasse mit
@ActiveProfiles
wie folgt; andernfalls, IhreApplication
configuration-Klasse wird immer deaktiviert. Das ist, warum Sie derzeit nicht sehen, alle Ihre eigenen Bohnen aufgelistet in derApplicationContext
.Darüber hinaus
Application
werden sollte, versehen mit@Configuration
wie bereits erwähnt wurde, von jemand anderem.InformationsquelleAutor Sam Brannen
Sind Sie vielleicht fehlt ein
@Configuration
annotation auf IhreApplication
Klasse?Da konnte ich nicht kommentieren, ich gepostet eine Antwort. Notiert für zukünftige Referenz.
InformationsquelleAutor rikica