Cucumber-JUnit,有没有办法控制@before和@after标签的顺序运行
Cucumber-JUnit, is there a way to control the order in which @before and @after tags run
我有两个@after 标签,@close-browser 和@screenshot.So,现在当我将这两个标签用于功能文件时,它首先执行@close-browser 并且在执行方法后失败@截屏。
有没有一种方法可以让 cucumber 告诉 运行 @screenshot after method first?
屏幕截图应采用 @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();
}
}
有一个 'order' 参数,您可以将其传递给 @Before
和 @After
以控制执行顺序:
@Before( order = 5 )
public void foo() {}
@After( order = 500 )
public void bar() {}
挂钩前 运行 升序排列(最低序号在前),而挂钩后 运行 降序排列(最高序号在前)。
我有两个@after 标签,@close-browser 和@screenshot.So,现在当我将这两个标签用于功能文件时,它首先执行@close-browser 并且在执行方法后失败@截屏。 有没有一种方法可以让 cucumber 告诉 运行 @screenshot after method first?
屏幕截图应采用 @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();
}
}
有一个 'order' 参数,您可以将其传递给 @Before
和 @After
以控制执行顺序:
@Before( order = 5 )
public void foo() {}
@After( order = 500 )
public void bar() {}
挂钩前 运行 升序排列(最低序号在前),而挂钩后 运行 降序排列(最高序号在前)。