Я читал много советов по этой теме, но, похоже, никто из них не работает. В настоящее время контекст приложения создается для каждого тестового класса, но я хочу, чтобы он был создан только один раз и использовался всеми тестовыми классами.Один весенний контекст в тестах jUnit
Это мой тест установка свита:
@RunWith(ClasspathSuite.class)
@ClassnameFilters({"org.*", ".*Test"})
public class AllTests {
}
Это мой абстрактный класс с установкой контекста. Все классы тестов расширяют этот класс.
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class})
@ContextConfiguration(classes = {ServiceInitializer.Config.class})
@DirtiesContext
public abstract class ServiceInitializer extends AbstractJUnit4SpringContextTests {
@Configuration
@Import({TestConfig.class, SpringClientConfig.class})
public static class Config {
@Bean
public ContactsClient contactsClient(ContactsService contactsService) {
return new ContactsClientFactory().createInstance(contactsService);
}
}
@Autowired
protected ContactsClient contactsService;
...
@Autowired
protected ApplicationContext appContext;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
initializeDB();
initializeApplicationServiceProperties();
dbInit = false;
}
protected static void initializeDB() throws Exception {
... database settings ...
dropSQLTestDatabase(dbName, jdbcProperties);
dropTestDatabase();
}
protected static void initializeApplicationServiceProperties() throws IOException {
System.setProperty("log4j.config.file", ServiceInitializer.class.getClassLoader().getResource("log4j-test.xml").getFile());
System.setProperty("app.config.file", ServiceInitializer.class.getClassLoader().getResource("test.properties").getFile());
AppStartSupport.configureLogging();
AppStartSupport.loadProperties();
}
...
}
Кто-нибудь знает, как изменить эту настройку, чтобы достичь единственного контекста, который будет использоваться всеми тестами jUnit?
Спасибо :-)