Cucumber-JUnit,有没有办法控制运行@before和@after标签的顺序

时间:2016-07-11 14:44:34

标签: java junit cucumber cucumber-jvm cucumber-junit

我有两个@after标签,@ close-browser和@ screenshot.So,现在当我使用两个标签作为特征文件时,它首先执行@ close-browser而它在执行@screenshot方法后失败。 有没有办法告诉黄瓜先在方法之后运行@screenshot?

2 个答案:

答案 0 :(得分:11)

有一个'命令'您可以传递给select * from Event(carID="car#1").win:length(20) as car1, Event(carID="car#2").win:length(20) as car2 where Math.abs(car1.time-car2.time) > 3 and car1.Location.Street = car2.Location.Street @Before以控制执行顺序的参数:

@After

挂钩按升序运行(最低订货号先行),而挂钩按降序运行(最高订货号先行)。

答案 1 :(得分:3)

屏幕截图应采用@After注释方法之一。像这样:

@After
public void finish(Scenario scenario) {
    try {
        byte[] screenshot =
        helper.getWebDriver().getScreenshotAs(OutputType.BYTES);
        scenario.embed(screenshot, "image/png");
    } catch (WebDriverException somePlatformsDontSupportScreenshots) {

    System.err.println(somePlatformsDontSupportScreenshots.getMessage());
    }
    finally {
        helper.getWebDriver().close();
    }
}