zur Zeit stoppt auf zwingende TestNG ITestListener
- onTestSkipped
Methode. Nachteile sind, dass Screenshots für jede übersprungene Methode gemacht werden. Natürlich sollte der Code unterhalb des Codes überarbeitet werden, aber es ist ein guter Anfangspunkt. Hinweis: Sie sollten sich diese benutzerdefinierten Hörer in Ihr testng.xml
@Override
public void onTestSkipped(ITestResult result) {
if(result != null){
String failedTestScreenshotFolder = Paths.get("").toAbsolutePath().toString() + "path/skippedScreenshots/";
WebDriver webDriver = ((TestBase)result.getInstance()).webDriver;
File scrFile = ((TakesScreenshot)webDriver).getScreenshotAs(OutputType.FILE);
try {
String className = result.getTestClass().getName();
FileUtils.copyFile(scrFile, new File(failedTestScreenshotFolder + className.substring(className.lastIndexOf(".") + 1) + "." + result.getMethod().getMethodName() + ".jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
enthalten haben Sie 'Itestresult' wie diese zu benutzen versucht,' @AfterMethod \t public void takeScreenShotOnFailure (ITestResult Testergebnis) throws IOException { \t \t if (testResult.getStatus() == ITestResult.FAILURE) { \t \t \t System.out.println (testResult.getStatus()); \t \t \t Datei scrFile = ((TakesScreenshot) Treiber) .getScreenshotAs (OutputType.FILE); \t \t \t FileUtils.copyFile (scrFile, neue Datei ("D: \\ testScreenShot.jpg")); \t} \t} 'Sie können das gleiche für @BeforeMethod – user1207289