2009-02-26 8 views
1

Я использую AbstractTransactionalSpringContextTests для запуска тестов интеграции с пружиной. Весенний контекст загружается всего один раз, а затем все тесты запускаются. Как сделать то же самое, если я хочу, чтобы мои тесты были во многих классах и пакетах.Ввод тестов интеграции весов в разные классы и пакеты

Конечно, весенний контекст должен быть загружен только один раз для всех моих тестов (во всех классах и пакетах), а не один раз для каждого класса или пакета.

ответ

1

Как Javadocs для AbstractSingleSpringContextTests (один из суперклассов AbstractTransactionalSpringContextTests) состояние:

Этот класс будет кэшировать контексты на основе ключа контекста: обычно места конфигурации массива строк описания дескрипторов Spring ресурсов, составляющих контекст. Если метод setDirty() не вызван тестом, контекст не будет перезагружен даже в разных подклассах этого теста. Это особенно полезно, если ваш контекст медленно строится, например, если вы используете Hibernate, и время, затраченное на загрузку сопоставлений, является проблемой.

Ваш контекст кэшируется, поэтому все остальные тесты, выполняемые внутри одного загрузчика классов (т. Е. - все ваши другие тесты, выполняемые во время одного и того же пробного прогона), будут использовать кешированный контекст. Вам не нужно делать какие-либо дополнительные настройки - вам уже нужно сделать. Если вы не уверены в этом или хотите устранить неполадки, просто включите ведение журнала для org.springframework, и вы увидите много полезного ведения журнала о том, когда загружается контекст, какой файл, как; и т.д.