【问题标题】:WDIO-Cucumber.js:Before and After tags should to run only once before and after all feature files or scenarios are runWDIO-Cucumber.js:Before 和 After 标签应该在所有功能文件或场景运行之前和之后只运行一次
【发布时间】:2020-04-21 07:08:04
【问题描述】:

在我的框架 wdio-cucumber.js 中,我有多个功能文件。我的要求是,在所有功能文件或场景运行后,Before 和 After 挂钩只运行一次,因为 WebDriver IO 在单个会话中运行每个功能文件,我无法满足我的要求。有什么解决办法吗?

【问题讨论】:

    标签: webdriver-io cucumberjs


    【解决方案1】:

    您可以使用 WDIO 的 onPrepareonComplete 挂钩来实现您正在寻找的东西。

    onPrepare - 在所有工作人员启动之前执行一次。 onComplete - 在所有工作人员关闭并且进程即将退出后执行。

    let status;
    
    onPrepare() {
     status = 'Started';
    }
    
    onComplete() {
     status = 'Completed';
    }
    

    参考:https://github.com/webdriverio/webdriverio/blob/master/examples/wdio.conf.js#L183-L326

    【讨论】:

    • 感谢 Raju,但是在我的框架中,我有一些变量必须初始化,所以如果我在 onprepare 中初始化它们并尝试访问或者说打印它们 incomplete ,它们的值不会按预期显示。
    • 我认为您需要将它们初始化为全局并在挂钩中使用它们。您正在尝试在本地范围内创建并尝试在全局范围内重新分配它们?
    • 我们在我们的框架中使用Typescript,所以如何在typescript中创建全局变量。我已经尝试过,但没有找到任何可行的解决方案。
    • 我不太擅长打字。但我建议在这两个钩子之外创建一个变量,并尝试在这些钩子内重新分配它们。
    • 添加了一个伪代码,帮助您更好地理解它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多