Как установить порядок приоритетов для cucumber.io 5.6.0 после хуков и заданного тега c - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь обновить свои знания в 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"})

1 Ответ

0 голосов
/ 11 апреля 2020

Крючки больше не принимают несколько тегов. Вместо этого вы используете одно выражение тега . Таким образом, правильный способ использования хуков будет:

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

}
...