如何在挂钩和特定标签后为 cucumber.io 5.6.0 提供优先顺序

How to give priority order for cucumber.io 5.6.0 after hooks and a specific tag

我想更新我对 Cucumber 的了解,但有些功能很难找到或更改。正确知道我正在尝试但未能找到方法。我尝试并可以在步骤定义中使用各种挂钩 @After 并定义顺序 条件挂钩,如特色标签,但不能同时使用。知道是否可以在最新版本中同时执行这两项操作吗?!如果是,该怎么做?请!

https://cucumber.io/docs/cucumber/api/?sbsearch=CucumberOptions#hooks

示例(供标签使用):

@After("not @unit")
public void screenshot(Scenario scenario) {
    if (scenario.isFailed()) {
        byte[] screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
        scenario.embed(screenshot, "image/png");
    }
}
@After("not @unit")
    public void closeBrowser() {
        driver.quit();
}

示例(订单):

@After(order = 10)
public void screenshot(Scenario scenario) {
    if (scenario.isFailed()) {
        byte[] screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
        scenario.embed(screenshot, "image/png");
    }
}
@After(order = 0)
    public void closeBrowser() {
        driver.quit();
}

在旧的 cukes 版本中可以使用:

@After(order = 1, value={"~@unit"})

挂钩不再使用多个标签。相反,您使用单个 tag expression。所以正确的使用钩子的方法是:

@After(order = 1, value="(@firefox or @chrome) and not @unit")
public void screenshot(Scenario scenario) {

}