Ich habe Probleme, meine vollständigen Testergebnisse in Extent-Berichte zu pushen - mit Version 2.4. Grundsätzlich habe ich 2 Tests 1 Test in jeder Klassendatei und habe eine "SimpleReportFactory" als Basisreporter.Extent Reports - Alle Ergebnisse werden nicht erfasst, wenn ich 2 oder mehr Klassendateien habe
Wenn ich die Tests über testng.xml nur der letzte Test wird erfasst, bitte helfen bei der Lösung dieses Problems, habe ich andere Beiträge überprüft, finde ich einige Antworten, aber versäumt, es anzuwenden. Ich brauche ein Arbeitsbeispiel, in dem ich eine Extent-Report-Instanz verwenden und sie testübergreifend verwenden und für alle Tests einen Bericht erstellen kann.
Ich bekomme Null-Zeiger-Ausnahme auf meiner 2. Test-Klasse, wenn ich die unten genannten Tests über Testng Xml, ist es ein Framework-basierte Tests! Hier ist einer der Posts, die ich gefunden habe (could not add the result of two class in the ExtentReport) wo ich versucht habe, den gegebenen Vorschlag umzusetzen, aber es gibt mir NPE! Nicht sicher, wie eine Instanz implementiert und global verwendet wird.
public class SimpleReportFactory {
public static ExtentReports reporter;
public static synchronized ExtentReports getReporter() {
if (reporter == null) {
reporter = new ExtentReports("SimpleReport.html", true, DisplayOrder.NEWEST_FIRST);
}
return reporter;
}
public static synchronized void closeReporter() {
reporter.flush();
reporter.close();
}
}
public class Registration extends BaseClass {
public ExtentReports reporter = SimpleReportFactory.getReporter();
@BeforeMethod
public void setUp() throws IOException {
intialize();
}
@Test
public void TestUserRegistration() throws Exception {
ExtentTest testreporter = reporter.startTest("TestUserRegistration");
WebElement ProfileLink = getWebElement("profilepage.createaccount.profilelink");
ProfileLink.click();
testreporter.log(LogStatus.INFO, " Click on the Profile Link from HomePage");
RandomEmail();
driverwait(1);
WebElement Password = getWebElement("profilepage.createaccount.password");
Password.sendKeys(Repository.getProperty("password"));
driverwait(1);
WebElement SubmitButton = getWebElement("profilepage.createaccount.submitbutton");
SubmitButton.click();
reporter.endTest(testreporter);
}
@AfterMethod
public void testDown() {
CloseBrowser();
reporter.close();
}
}
public class SignIn extends BaseClass {
ExtentReports reporter;
@BeforeMethod
public void setUp() throws IOException {
intialize();
}
@Test
public void LoginToTheApplication() throws Exception {
ExtentTest testreporter = reporter.startTest("LoginToTheApplication");
WebElement profilelink = getWebElement("profilepage.signin.profilelink");
profilelink.click();
testreporter.log(LogStatus.INFO, "Hey");
WebElement signinemail = getWebElement("profilepage.signin.emailaddress");
signinemail.sendKeys(Repository.getProperty("signinemailaddress"));
driverwait(1);
WebElement signinpassword = getWebElement("profilepage.signin.password");
signinpassword.sendKeys(Repository.getProperty("signinpassword"));
driverwait(1);
WebElement clicksubmit = getWebElement("profilepage.signin.submitbutton");
clicksubmit.click();
reporter.endTest(testreporter);
}
@AfterMethod
public void testDown() {
CloseBrowser();
reporter.close();
}
Bitte versuchen Sie es (null == Reporter) anstelle von (Reporter == null) –