如何 运行 Android 和 iOS 一个特征文件
How to run one feature file for Android and iOS
我需要 运行 测试 Android 和 iOS。我有一个用于 2 个平台的功能文件,因为步骤是相同的。以及不同的步骤定义文件和页面目标文件,分别为Android和iOS。我如何才能 运行 一个功能文件仅用于 Android/iOS 并同时用于两者。
使用不同的步骤定义文件,看起来这是不可能的。
在我当前的框架中,我在执行 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);
}
}
我需要 运行 测试 Android 和 iOS。我有一个用于 2 个平台的功能文件,因为步骤是相同的。以及不同的步骤定义文件和页面目标文件,分别为Android和iOS。我如何才能 运行 一个功能文件仅用于 Android/iOS 并同时用于两者。
使用不同的步骤定义文件,看起来这是不可能的。
在我当前的框架中,我在执行 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);
}
}