Мы используем Cucumber-JVM для написания наших приемочных тестов и JUnit для их выполнения (через JUnit Cucumber). Поскольку эти тесты include Selenium WebDriver, я хочу иметь возможность снимать скриншот, если мой тест завершится неудачно (у меня есть код для).
Если я просто добавлю крюк WebDriver onException, скриншот не будет выполняться, когда утверждение не удастся. Я хочу, чтобы добавить JUnit-прослушиватель в Cucumber-бегун, но API, похоже, не поддерживает это (нет метода addListener на Cucumber.class).
Может ли кто-нибудь помочь? Спасибо команде.
Обычно я делаю скриншоты в хук @After
который @After
после каждого сценария огурца. @After
метод hook использует специальный объект Scenario
чтобы вы могли вставлять свои скриншоты в свои отчеты. Вот пример того, как делать скриншоты в случае сбоя сценария,
@After public void tearDown(Scenario scenario) { try { if (scenario.isFailed()) { final byte[] screenshot = ((TakesScreenshot) driver) .getScreenshotAs(OutputType.BYTES); scenario.embed(screenshot, "image/png"); } } finally { driver.quit(); } }
Если вы используете Geb перед Selenium, я думаю, вы можете просто использовать geb.Browser.report (), чтобы сделать снимок экрана.