【问题标题】:How can I get cucumber scenario name without using hooks?如何在不使用钩子的情况下获取黄瓜场景名称?
【发布时间】:2019-03-30 03:49:30
【问题描述】:

我想为每个场景获取一个场景名称,以便在 saucelabs 上运行时将其设置为测试名称。可以在创建 webdriver 之前使用 MutableCapabilities 设置此测试名称。我正在使用 google Guice @ScenarioScoped 创建驱动程序,因此即使在调用 @Before 钩子方法之前也会创建驱动程序。那么,有什么方法可以在不使用 @Before 钩子的情况下访问场景名称?

【问题讨论】:

    标签: guice bdd cucumber-jvm cucumber-java


    【解决方案1】:

    根据 cucumber 实现,如果不使用 @Before 或 @After 钩子,就无法获取场景名称。 但是,以下应该可以解决您的问题: 您可以利用订购挂钩的优势。这些钩子将根据指定的顺序执行。供参考:https://cucumber.io/docs/cucumber/api/ 示例:

    @Before(order = 10)
    public void doSomething(){
        // Do something before each scenario
    }
    

    所以,你可以在你创建webdriver的类中再添加一个低阶的@Before hook,这个方法需要放在webdriver创建之前。

    【讨论】:

      【解决方案2】:

      Cucumber 实现不允许您在不使用 @Before 钩子的情况下访问场景名称

      【讨论】:

        【解决方案3】:

        使用 testng 创建黄瓜跑步者类。在 run_cukes 方法中,将使用 cucumberFeature.getCucumberFeature().getGherkinFeature().getName()

        方法获取当前特征文件和场景名称

        【讨论】:

        • 您是否有机会剪切和粘贴文本而不是使用图像?缩进 4 个空格会将其呈现为代码;编辑区域上方还有快捷按钮,可以为您执行此操作。这将帮助那些看不懂图片中的小字体的人,并使搜索引擎也能找到它。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多