Я пытаюсь запустить тесты на огурец из приложения весенней загрузки.Моя структура проекта выглядит следующим образом:
app.jar
- толстая банка с пружинной загрузкой
util-autoconfig.jar
- класс автоконфигурации, который загружает 1 компонент, Foo.class
test1.jar
- содержит пошаговые определения и некоторые классы, помеченные @ Component
test2.jar
- как test1.jar, только разные шаги и разные классы
Я вызываю приложение так:
java -jar -Dloader.path=$LIB/test1.jar app.jar
Я использую общее имя базового пакета, поэтому мой test{1,2}.jar
будет сканироваться во время запуска.
Внутренне, в app.jar есть CommandLineRunner
, который выполняет и настраиваетвремя огурца через cucumber.runtime.Runtime
.
Это все работает.Мои функции выполнены, и я вижу вывод на консоль для успеха / неудачи.Однако я не использую пружинный впрыск в моих пошаговых определениях.
Я хочу @Autowired
боб Foo
из util-autoconfig
в пошаговые определения в каждой тестовой банке.Это не работает.
У меня есть cucumber-spring
на пути к классам, я уже распаковал cucumber-java
, когда моя толстая банка создана.Опять же, я могу нормально запускать cucumber.
Я просто не могу вставить бины из контекста приложения весенней загрузки в мои пошаговые определения.Я подозреваю, что это будет работать нормально, если я использую cucumber.xml
, но я не хочу его использовать, и при этом я не хочу инициализировать два контекста (через весеннюю загрузку, затем через огуречный SpringFactory
).
Это возможно?Это позволило бы мне выводить много вещей и просто переключать шаги через свойство loader.path
, которое является моей основной потребностью.