如何 运行 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);
    }
}