每当我的测试用例失败时,我都会尝试添加屏幕截图。但是我已经在 Windows 环境中成功地做到了这一点,但我无法在 docker/linux 环境中实现它。
截图代码:
public void testFailure(Failure failure) throws java.lang.Exception
{
Random rand = new Random();
//Scenario scenario;
System.out.println("Execution Failure : ");
try {
//String screenshotName = failure.getTestHeader().toString();
int num = rand.nextInt(10000000);
String screenshotName = "Screenshot"+num;
/*File sourcePath = ((TakesScreenshot)Homepage.driver).getScreenshotAs(OutputType.FILE);
File destinationPath = new File(System.getProperty("user.dir") + "/target/CucumberExtentReport/Screenshots/" + screenshotName +".jpeg");
Files.copy(sourcePath, destinationPath);
Reporter.addScreenCaptureFromPath(destinationPath.toString());
*/
final byte[] screenshot = ((TakesScreenshot)Homepage.driver).getScreenshotAs(OutputType.BYTES);
File destinationPath = new File(System.getProperty("user.dir") + "/target/CucumberExtentReport/Screenshots/" + screenshotName +".jpeg");
FileUtils.writeByteArrayToFile(destinationPath, screenshot);
//Files.copy(sourcePath, destinationPath);
Reporter.addScreenCaptureFromPath(destinationPath.toString());
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
注意:我使用范围报告在失败的测试用例上添加屏幕截图......