Я хочу добавить логи и снимок экрана, используя экстерьер-cucumber4-адаптер - PullRequest
0 голосов
/ 17 мая 2019

Я работаю над проектом Selenium Cucumber.Я использую следующие версии:

  • Ядро огурца 4.2.0
  • Ягода огурца 4.2.0
  • Джунит огурца 4.2.0
  • extremereports-cucumber4-adapter 1.0.7

Я могу создать отчет в формате HTML.Тем не менее, я хочу знать, как добавить снимки экрана и журналы с помощью адаптера extereports-cucumber4

import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(features = <PATH>,
glue = {"testcases.periscope"},plugin = {"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:", "json:target/cucumber-report.json","html:target/Report.html"})
//@Category(Example.class)
public class RunCukesTest {
}

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

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

@AfterStep
public static void addStepLog(String Message)
{
ExtentCucumberAdapter.addMessageToTestStep(Message);
}

Вы должны настроить класс ExtentCucumberAdapter и добавить некоторые методы статического журнала, чтобы использовать информацию о шагах уровня потока.

Публичная статическая синхронизация void addMessageToTestStep (String Message) {

stepTestThreadLocal.get () Информация (сообщение). }

Public static synchronized void addScreenShotToTestStep(String Message)
{

stepTestThreadLocal.get().embed(screenshot, "image/png");
    }
0 голосов
/ 18 мая 2019

Мне удалось добавить снимки экрана с помощью stretre-reg-cucumber4-adapter v1.0.7 , но этого не могло произойти в v1.0.6

<dependency>
    <groupId>com.aventstack</groupId>
    <artifactId>extentreports-cucumber4-adapter</artifactId>
    <version>1.0.7</version>
</dependency>

Сейчасскажем, мы хотим добавить снимок экрана, когда тестовый случай потерпел неудачу, чтобы мы могли следовать приведенному ниже коду в хуках -

@After
public void afterScenario(Scenario scenario){
        if(scenario.isFailed()){
            byte[] screenshot = ((TakesScreenshot)DriverManager.getDriver()).getScreenshotAs(OutputType.BYTES);
            scenario.embed(screenshot, "image/png");
        }
      }

Если мы хотим напечатать что-то в отчете, мы можем использовать scene.write( "сообщение");

...