Ich versuche, Screenshots zu einem fehlgeschlagenen Testbericht hinzuzufügen. ich renne nach diesem Tutorial: http://toolsqa.com/selenium-webdriver/testng-reporters-asserts/'Reporterausgabe' ist leer im Testbericht
Meine Funktion
public static void onTestFailure(ITestContext tc, ITestResult result, WebDriver driver) {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
String methodName = result.getName();
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
String reportDirectory = new File(System.getProperty("user.dir")).getAbsolutePath() + "\\test-output\\" +tc.getSuite().getXmlSuite().getName();
System.out.printf(reportDirectory);
File destFile = new File((String) reportDirectory+"\\failure_screenshots\\"+methodName+"_"+formater.format(calendar.getTime())+".png");
FileUtils.copyFile(scrFile, destFile);
Reporter.log("<a href='"+ destFile.getAbsolutePath() + "'> <img src='"+ destFile.getAbsolutePath() + "' height='100' width='100'/> </a>");
} catch (IOException e) {
e.printStackTrace();
}
}
Das Problem ist ttht Screenshot in der richtigen Stelle angezeigt wird, aber Link von Reporter.log wird nie zu 'Reporter Ausgabe' Ansicht.
Weiß jemand, was ich tun muss, damit es funktioniert?
Es ist Java-Projekt mit Maven
Wo wird diese Methode aufgerufen: nach @ Test mit Annotationen oder in jedem mit @ attent annotierten Verfahren? –
Es ist in @ AfterMethod annotierte Methode, ich habe dort wenn (result.FAILURE == result.getStatus()) und dann ruft Screenshot und Logging-Link – Pawel
Reporter.logs funktionieren nur innerhalb @_Test annotierte Methoden. Um benutzerdefinierte Protokolle in den Bericht einzufügen, müssen Listener implementiert werden. Überprüfen Sie die folgenden Codefragmente. –