Как прикрепить скриншот к тому этапу, где он вышел из строя? - PullRequest
0 голосов
/ 24 сентября 2019

Я работаю над отчетом об экстентах и ​​хочу прикрепить скриншот к шагу, на котором он не работает, а не к последнему шагу.Я использовал следующий код с @After hook, но затем он прикрепляет скриншот к последнему шагу, а не к шагу, который не удался.Я попытался изменить хук @After на хук @AfterStep, но затем код под этим хуком даже не выполняется.

Этот хук определен в конфигурации пакета, и я включил этот пакет в клей, как указано ниже:

glue = {"stepDefinitions", "configuration"}

Код для прикрепления снимка:

import cucumber.api.java.After;

@After()
     public void afterScenario(Scenario scenario) {
          WebDriver driver1 = BaseConfig.setDriver();
          System.out.println("after step");
         if (scenario.isFailed()) {
             System.out.println("scenario failed");
         String screenshotName = scenario.getName().replaceAll(" ", "_");
         System.out.println(screenshotName);
         try {

             File sourcePath = ((TakesScreenshot) driver1).getScreenshotAs(OutputType.FILE);
             System.out.println(sourcePath);
             File destinationPath = new File(System.getProperty("user.dir") + "/target/cucumber-reports/" + screenshotName + ".png");
             System.out.println(destinationPath);

             Files.copy(sourcePath, destinationPath);   
             destinationPath = new File("./" + screenshotName + ".png");

             Reporter.addScreenCaptureFromPath(destinationPath.toString());


         } catch (IOException e) {
         } 
         }
         }

Зависимости:

   <dependency>
        <groupId>com.aventstack</groupId>
        <artifactId>extentreports</artifactId>
        <version>4.0.9</version>
    </dependency>

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-jvm</artifactId>
        <version>4.4.0</version>
        <type>pom</type>
    </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...