Работа над этим сообщением: Cucumber: бэкэнд не обнаружен при запуске из Spring Boot jar
Я пытаюсь заставить Cucumber полноценно работать в живом приложении Spring Boot. В настоящее время у меня есть приложение PO C, использующее вышеупомянутый пост-код для создания среды выполнения Cucumber, и оно запускает простой класс Feature / Steps со ссылкой на Bean:
Service:
public void testFeature(){
RuntimeOptions runtimeOptions = new RuntimeOptions(new ArrayList<String>(asList("--glue", "org.bdd.poc", "--no-dry-run", "--monochrome", "classpath:features")));
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
ResourceLoader resourceLoader = new CustomMultiLoader(classLoader);
ClassFinder classFinder = new ResourceLoaderClassFinder(resourceLoader, classLoader);
Runtime runtime = new Runtime(resourceLoader, classFinder, classLoader, runtimeOptions);
try {
runtime.run();
} catch (IOException e) {
e.printStackTrace();
}
}
DemoSteps:
(no class annotation)
public class DemoSteps {
@Autowired
private MyBean bean;
public DemoSteps(){
System.err.println("STEP INIT");
}
@Given("a proof of concept")
public void givenAPOC(){
}
@When("doing a demo")
public void whenDemo(){
}
@Then("it should talk to a bean")
public void thenItShouldTalkToABean(){
this.bean.poke();
}
}
Bean:
@Component
public class MyBean {
public void poke(){
System.err.println("I'VE BEEN POKED! THE PAIN!");
}
}
Класс DemoSteps. java имеет это как поле класса с @Autowired на месте, но пока он не заполняет ссылку на bean-компонент и не завершает работу после Конструкция DemoSteps. В процессе отладки я вижу, что для создания экземпляра Steps используются фабрики Spring bean-компонентов, но ничего, касающееся автоматического подключения, не затрагивается. Я предполагаю, что для того, чтобы применить какое-то соединение к основному SpringContext, находится либо:
- Соответствующая реализация Backend
- Соответствующая реализация Glue
I знаю, что нечто подобное могло быть выполнено с использованием инфраструктуры Karate, но я не нашел, что позволяет этому установить соединение. boot-maven-plugin "config.