Невозможно добавить скриншот в отчет об экстентах в Cucumber. - PullRequest
0 голосов
/ 11 декабря 2018

Я не могу добавить снимок экрана невыполненного дела в отчет об экстентах в Cucumber (java).

//Runner class to generate extent report
@AfterClass
public static void Report() {

    Reporter.loadXMLConfig(new File("/Users/chetan/Documents/workspace/Packages/extent-config.xml"));
    Properties p = new Properties();
    p.list(System.out);

}

//Main class contains step definitions
@After("@browser")
public void teardown(WebDriver driver, Scenario scenario, String screenshotName) throws IOException {
    if (scenario.isFailed()) {
        final byte[] screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
        scenario.embed(screenshot, "image/png");

        driver.quit();
    }
}

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Вам необходимо определить объект отчета экстента на уровне класса или где угодно.И тогда вы можете использовать его на отказ.

  • Для местоположения отчета: Создать новую папку с именем Report в каталоге проекта в корневом каталоге
  • Для местоположения снимка экрана: Создать новую папку с именем Screenshots в каталоге вашего проекта в корневом каталоге

Код:

//Report Initialization
ExtentHtmlReporter htmlreport = new ExtentHtmlReporter(".\\Report\\Extent Report with Screenshot.html");
ExtentReports reports = new ExtentReports();
reports.attachReporter(htmlreport);
ExtentTest testlog;

//Capture and save screenshot
File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
BufferedImage img = ImageIO.read(screen);
File filetest = Paths.get(".").toAbsolutePath().normalize().toFile();
ImageIO.write(img, "png", new File(filetest + "\\Screenshots\\" + "Test.png"));

//Log Screenshot in Report
testlog.info("Details of " + "Test screenshot", MediaEntityBuilder
                .createScreenCaptureFromPath(System.getProperty("user.dir") + "\\Screenshots\\" + "Test.png").build());

//Flush Report-Mandatory, Else report will not generate.  
reports.flush();

Вы можете сослаться на мой примерот Github ( Нажмите здесь ), для простоты использования.

0 голосов
/ 11 декабря 2018

Вы не добавили скриншот в отчет

ExtentTest test = extent.createTest("TestName");
test.fail("details").addScreenCaptureFromPath("pathToScreenshot");
// or
test.fail("details", MediaEntityBuilder.createScreenCaptureFromPath("pathToScreenshot").build());
...