如何在不使用钩子的情况下获取黄瓜场景名称?
How can I get cucumber scenario name without using hooks?
我想为每个场景获取一个场景名称以将其设置为测试名称,而 运行 它在 saucelabs 上。可以在创建 webdriver 之前使用 MutableCapabilities 设置此测试名称。我正在使用 google Guice @ScenarioScoped 创建驱动程序,因此甚至会在调用 @Before 挂钩方法之前创建驱动程序。那么,有什么方法可以在不使用 @Before 钩子的情况下访问场景名称?
Cucumber 实现不允许您在不使用 @Before 钩子的情况下访问场景名称
用 testng 创建 cucumber runner class。在 run_cukes 方法中将使用方法 cucumberFeature.getCucumberFeature().getGherkinFeature().getName()
获取当前特征文件和场景名称
根据 Cucumber 实现,如果不使用 @Before 或 @After 挂钩,则无法获取场景名称。
但是,以下应该适用于您的问题:
您可以利用订购挂钩的优势。这些挂钩将根据指定的顺序执行。供参考:https://cucumber.io/docs/cucumber/api/
示例:
@Before(order = 10)
public void doSomething(){
// Do something before each scenario
}
所以,你可以在创建webdriver的class处再添加一个低阶@Before hook,这个方法需要放在webdriver创建之前。
我想为每个场景获取一个场景名称以将其设置为测试名称,而 运行 它在 saucelabs 上。可以在创建 webdriver 之前使用 MutableCapabilities 设置此测试名称。我正在使用 google Guice @ScenarioScoped 创建驱动程序,因此甚至会在调用 @Before 挂钩方法之前创建驱动程序。那么,有什么方法可以在不使用 @Before 钩子的情况下访问场景名称?
Cucumber 实现不允许您在不使用 @Before 钩子的情况下访问场景名称
用 testng 创建 cucumber runner class。在 run_cukes 方法中将使用方法 cucumberFeature.getCucumberFeature().getGherkinFeature().getName()
获取当前特征文件和场景名称根据 Cucumber 实现,如果不使用 @Before 或 @After 挂钩,则无法获取场景名称。 但是,以下应该适用于您的问题: 您可以利用订购挂钩的优势。这些挂钩将根据指定的顺序执行。供参考:https://cucumber.io/docs/cucumber/api/ 示例:
@Before(order = 10)
public void doSomething(){
// Do something before each scenario
}
所以,你可以在创建webdriver的class处再添加一个低阶@Before hook,这个方法需要放在webdriver创建之前。