У меня есть два @ после тегов, @ close-browser и @ screenshot.Так, прямо сейчас, когда я использую оба тега для функции файл сначала выполняется @ close-browser, и он не выполняется после метода для @screenshot. Есть ли способ, которым я могу сказать, огурец, чтобы запустить @screenshot после метода в первую очередь?Cucumber-JUnit, есть способ управлять порядком, в котором @ beforefore и @ после того, как теги запускаются
ответ
Снимок экрана следует снимать в одном из методов аннотированных @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();
}
}
Существует «порядок» аргумент, что вы можете перейти к @Before
и @After
контролировать порядок исполнения:
@Before(order = 5)
public void foo() {}
@After(order = 500)
public void bar() {}
Перед крюки выполняются в порядке возрастания (наименьший порядковый номер первой), а после того, как крючки выполняются в порядке убывания (сначала номер самого высокого порядка).
Я проверяю, что isscanrio не удалось, и если это не удается Я выполняю какой-то код? Что делать, если я запускаю два файла функций, последний сбой завершился, и первый шаг следующей функции также не удастся из-за неудачного сценария огурцов. Вы знаете, как справиться с такой ситуацией? Ваша помощь будет принята с благодарностью. – Samantha
@tosha: пожалуйста, начните новый вопрос переполнения стека –
Я проверил – Samantha
Проблема с этим подходом Иногда я не хочу закрывать браузер. Если сценарий не работает, причина в том, что для некоторых из моих функций я использую один и тот же браузер для всех сценариев. Если я использую это после метода, он закроет браузер, а следующий сценарий не найдет сеанс браузера и завершится с ошибкой. – Samantha
Я не знаю, правильно ли использовать один и тот же сеанс браузера для всех сценариев в некоторых файлах функций. – Samantha
@tosha это stronlgy, рекомендованный лучшими практиками Cucumber, чтобы все ваши сценарии были полностью изолированы друг от друга. Говоря это, вы все равно можете использовать один и тот же сеанс, пока вы очищаете файлы cookie в одном из ваших аннотированных методов @ @ After. –