Hi, I am trying to use spring junit test cases ... and I need the full application context to download. However, the junit test does not initialize the full application context.
Testing Class:
@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); } }
Output:
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 classes Annotations:
@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 { ...
Therefore, it must scan all the spring bean in the com.test package, and load them into the applicationcontext for the Junit test. But from the output of beans initialized, it does not seem to do this.
source share