Я пытаюсь создать среду автоматизации Springboot, cucumber и Junit4.Я использовал следующие версии:
- Springboot: 2.1.3
- огурец: io.cucumber 4.2.3
- Junit4: 4.12
- Операционная система: Win7 Pro.
Я создал класс prop, который пытается получить свойства из файла свойств (.yml)
Класс Prop:
@Data
@Component
public class PropsConfig {
@Value("${spring.skyewss}")
public String url;
}
Степень защиты:
public class SkyeWssLoginStepDef implements En {
private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
private WebDriver driver;
private SkyeWssLoginPage loginPage;
private SkyeWssUtil skyeWssUtil;
@Autowired
private PropsConfig propsConfig;
public SkyeWssLoginStepDef() {
Given("^I open Skye WSS web page$", () -> {
driver = CukeHook.driver;
loginPage = new SkyeWssLoginPage(driver);
driver.get(propsConfig.getUrl());
skyeWssUtil = new SkyeWssUtil();
LOGGER.info("Current page is " + driver.getTitle());
});
}
......
}
Класс бегуна огурца:
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"src/test/resources/features"},
plugin = {"pretty", "html:target/cucumber-html-report"},
tags = {"@SkyeWss"}
)
@SpringBootTest
public class WssRegApplicationTests {
}
Я пытался присвоить теги классам stepdef, но безуспешно.Когда я даю теги классов stepdef, такие как @Component или @SrpingBootTest, я получаю ошибку.
cucumber.runtime.CucumberException: склеивать класс com.flexicards.wss_reg.skye.step.SkyeWssLoginStepDef и класс com.flexicards.wss_reg.skye.step.SkyeWssDashboardValStepDef обе пытаются настроить контекст Spring.Убедитесь, что только один класс клея настраивает контекст пружины
cucumber.runtime.CucumberException: класс клея com.flexicards.wss_reg.skye.step.SkyeWssDashboardValStepDef был аннотирован @Component;помечая его как кандидата на автоопределение Spring.Классы клея обнаруживаются и регистрируются огурцом.Автоматическое определение классов клея пружиной может привести к дублированию определений бобов.Удалите аннотацию @Component
Я новичок в Spring и Springboot, я почти уверен, что где-то неправильно настроил.Большинство примеров для Springboot и огурцов там устарели.Я уже пробовал их.Как создать абстрактные классы, которые расширяются всеми классами stepdefs.Это даст мне ту же ошибку, что и @SpringBootTest one.
Может кто-нибудь помочь мне в этом?Любые входы приветствуются.Большое спасибо.