Как я могу прикрепить скриншот неудачного шага Cucumber к отчету Allure точно в шаге, а не в разделе Tear Down? - PullRequest
1 голос
/ 31 мая 2019

Я не могу добавить скриншот неудачного шага огурца под шагом в отчете Allure.

Я использую allure-cucumber4-jvm: 2.12.1, cucumber-java: 4.3.1 и пытаюсь добавить скриншот протестированного веб-приложения в отчет allure ТОЛЬКО при неудачном шаге огурца.Поэтому я попытался использовать аннотации @AfterStep и @After от cucumber и добавить скриншот в аннотированных методах в условиях script.isFailed ().Но проблема в том, что скриншоты добавляются после всех шагов в разделе Tear Down.Единственное отличие состоит в том, что метод @After вызывается один раз, а методы @AfterStep вызываются каждым шагом.

@AfterStep
public void addScreenshotOnFailed(Scenario scenario) throws IOException {
        if (scenario.isFailed()) {
            try {
                Allure.addAttachment("Failed step", new FileInputStream(Screenshots.takeScreenShotAsFile()));
            } catch (FileNotFoundException ignored) {}
        }
    }

Я ожидаю, что снимок экрана протестированного веб-приложения будет проходить точно при неудачном шаге огурца?но на самом деле у меня есть это в разделе Tear Down после всего сценария

1 Ответ

0 голосов
/ 31 мая 2019

Идея использует события, чтобы захватить статус шага и вставить скриншот.Если я прав, то согласно текущему дизайну AfterStep не выполняется, когда шаг не пройден.Таким образом, мы должны использовать AfterConfiguration в хуках.

Ruby: Вот реализация ruby.

AfterConfiguration do |scenario, config|
    config.on_event :test_step_finished do |event|
        if event.result.failed?
          # get screenshot
        end
    end
  end

Проверьте этот поток относительно очарованияосуществление.

...