0
我已阅读了很多关于此主题的建议,但似乎没有一个可行。 当前应用程序上下文是为每个测试类创建的,但是我希望它只创建一次并被所有测试类使用。jUnit测试中的单个Spring上下文
这是我的测试套件设置:
@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测试将使用的单个上下文?
感谢:-)