我需要针对Android和iOS运行测试。我有一个适用于2个平台的功能文件,因为步骤相同。以及针对Android和iOS的不同步骤定义文件和页面对象文件。我如何只在Android / iOS上运行一个功能文件,并在两者上运行。
答案 0 :(得分:0)
使用不同的步骤定义文件,似乎不可能。
在当前框架中,我在执行maven命令时传递系统属性,并在步骤定义中获取该属性(isIos()
方法检查我传递的设备参数),然后调用实际方法。在此框架中,iOS和Android应用程序的所有步骤定义均相同,这使此方法合理。但是对于这种方法,您还应该在执行开始时初始化所有页面对象。(我不是在注入依赖项,而是在开始时对其进行初始化,然后在步骤定义文件中注入驱动程序)
@Then("The user clicks add to basket button")
public void theUserClicksAddToBasketButton() {
try {
if (Hooks.isIos()) {
iosHomePage.clickAddToBasket();
} else {
androidHomePage.clickAddToBasket();
}
logger.info("The user clicked add to basket button");
} catch (Throwable err) {
logger.fatal("The user can not clicks add to basket button");
Assert.fail("ERROR : " + "The user can not clicks add to basket button" + err);
}
}