Intereting Posts
request.getCharacterEncoding () возвращает NULL … почему? Изменение пользовательского интерфейса для ProgressBar Swing в теме Nimbus GeneratePDF с библиотекой JasperReport и MongoDB Почему новый Java 8 Time Time API не имеет наносекундной точности? Что такое setBounds и как его использовать? Ошибка исключения почты Java; Создание нового экземпляра объекта в цикле для добавления в список Библиотека тегов поддерживает пространство имен: http://java.sun.com/jsf/composite/mycomponents, но для имени не было определено ни одного тега: foo Перетаскивание не работает на Mac Как я могу получить правильную текущую дату и время для Android-устройства, пока устройство отключено java.lang.ClassNotFoundException: com.mysql.jdbc.Driver Как установить фоновый рисунок камеры с углом Выделения в новых TLAB и распределениях вне TLAB OSGi: заменяет ли Blueprint декларативные услуги? Как исключить classы из расчета покрытия в EclEmma без фактического исключения их из самого покрытия

java – Огурцы на крюке неудачи теста JUnit

Мы используем 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 (), чтобы сделать снимок экрана.