Я работаю над отчетом об экстентах и хочу прикрепить скриншот к шагу, на котором он не работает, а не к последнему шагу.Я использовал следующий код с @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>