Ситуация: Существует сервер, который будет принимать результаты тестов, которые я передаю ему, но только с учетом правильной авторизации и конфигурации клиента. Поэтому я написал класс клиента как bean-компонент, который загружает правильные учетные данные из application.properties (в той же усадьбе, которую вы подключили бы к базе данных с учетными данными и свойствами Spring). Теперь я хочу написать прослушиватель testng, который использует этот клиент для этого. Выполняя свои исследования, я обнаружил, что весной, которую нужно сделать, должно быть расширение AbstractTestExecutionListener
.Зависимость от автозапуска Spring Boot в TestExecutionListeners
Так что, если я autowire моего клиента в качестве члена класса, как этот @Autowired private MyClient client;
я могу видеть, что компонент создается корректно, однако, если я пытаюсь использовать его в моем слушателе, как это:
@TestExecutionListeners(mergeMode = MergeMode.MERGE_WITH_DEFAULTS, listeners = {MyListener.class})
public abstract class MyTestParent extends AbstractTestNGSpringContextTests { //...
I может видеть, что бобы не автоуведомлены, что заставляет меня поверить, что эти слушатели создаются вне весеннего контекста как сами бобы.
Как написать прослушиватель (специфичный для пружины или testng), который может иметь зависимости, связанные с ним из контекста Spring? Что делать, если я хотел подтолкнуть результаты к какому-либо другому произвольному репозиторию результатов тестов, например базе данных?
Это не то, что я в конечном итоге делает, но он непосредственно ответил на мой вопрос. спасибо –