Для оптимизации цели мне нужно настроить TestExecutionListeners
вызывающую логикуКаков наилучший способ настройки нескольких методов TestExecutionListeners для TestSuite?
В моем случае у меня есть один ApplicationContext
и два типа тестов:
- те, которые используют
WebDriver
(давайте назовем егоObservableTest
) - те, которые использовать
RestTemplate
иJdbcTemplate
(назовем егоApiTest
)
Каждая из них использует тип свой собственный TestExecutionListener
:
ObservableTest
-ObservableTestListener
ApiTest
-ApiTestListener
Оба ObservableTestListener
и ApiTestListener
TestListener
простираться где prepareTestInstance()
определяется
ObservableTestListener
реализует beforeTestClass()
и afterTestClass()
методы, а также ApiTestListener
делает
мне нужно комбинировать типы тестов выше в одном JUnit TestSuite
следующим способом:
- Для каждого теста
prepareTestInstance()
вызывается - Как только первый
ObservableTest
собирается быть реализован,beforeTestClass()
изObservableTestListener
является выполнен - То же самое с
ApiTest
afterTestClass()
изObservableTestListener
вызывается когда последнийObservableTest
закончен в текущей Сюите- То же самое с
ApiTest
Все стало еще более сложным, так как каждый тест может быть запущен в одном номере и в разной ApplicationContexts
(из-за различные профили использования)
Буду очень благодарен за любую подсказку и рытье направление для реализации такой логики правильно
у меня есть две идеи до сих пор:
- Реализация пользовательских
Runner
(я не уверен, что это даже возможно) - Notify
TestContextManager
как-то, что конкретный метод (beforeTestClass()
илиafterTestClass()
) должен или не должен быть вызван. У меня есть ощущение, что@BootstrapWith
SpringClassRule
должен помочь мне в этом
Спасибо!
Почему нельзя использовать '@ TestExecutionListeners' на 2 различных типов тестов для регистрации соответствующих слушателей? –
@ M.Deinum это именно то, что я делаю, но когда я помещаю эти тесты в набор, TestExecutionListeners вызывают свои методы при каждом тестировании этого пакета. Я пытаюсь избежать этого – Anton
Spring's SuiteExecutionListener может работать. http://stackoverflow.com/questions/37985717/is-there-anything-like-spring-testexecutionlistener-for-testsuite –