2016-05-05 8 views
1

Base Class-Code verwenden:Erste Null-Zeiger excepetion wenn jede Anmerkung andere als @BeforeClass

protected WebDriver driver; 
protected String URL = "https://www.example.com/"; 
public Signup signuppage; 

@BeforeGroups 
public void setup() 
    {  
     System.setProperty("webdriver.chrome.driver","E:\\chromedriver.exe"); 
     driver = new ChromeDriver(); 
     driver.manage().window().maximize(); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
     driver.navigate().to(URL); 
     signuppage = PageFactory.initElements(driver, Signup.class); 

    } 

Anmelden Seite Code:

protected WebDriver driver; 

    public Signup(WebDriver driver) { 
     this.driver = driver; 
    } 

Testcase-Code:

@Test(groups="SignupButton") 
public void Signup_Disabled_Check() { 

    signuppage.signupbtn(); 

} 

Stack Trace:

java.lang.NullPointerException bei Testcases.SignUpTest.Signup_Disabled_Check (SignUpTest.java:27) bis C verweisen: \ Benutzer \ mike \ IdeaProjects \ web \ target \ todsichere-Berichte für die einzelnen Testergebnisse. bei org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212) bei org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) bei org.apache. maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) bei org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:116) bei org.apache.maven.lifecycle.internal. LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:80) bei org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51) bei org.apache.maven.lifecycle.internal.LifecycleStarter. execute (LifecycleStarter.java:128) bei org.apache.maven.DefaultMaven.doExecute (DefaultMa ven.java307) bei org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:193) bei org.apache.maven.DefaultMaven.execute (DefaultMaven.java:106) bei org.apache.maven. cli.MavenCli.execute (MavenCli.java:862) bei org.apache.maven.cli.MavenCli.doMain (MavenCli.java:286) bei org.apache.maven.cli.MavenCli.main (MavenCli.java: 197) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) bei Java .lang.reflect.Method.invoke (Method.java:497) bei org.codehaus.plexus.classworlds.launcher.Launcher.la unchEnhanced (Launcher.java:289) bei org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) bei org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java: 415) bei org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) verursacht durch: org.apache.maven.plugin.MojoFailureException: Es gibt Testfehler.

Wenn ich @BeforeClass für setup() verwende, funktioniert es gut. Aber wenn versuchen, @BeforeSuite, @BeforeGroups zu verwenden, erhalte ich Nullzeigerausnahme.

Ich betreibe es mit diesem Befehl:

mvn test -Dgroups=SignupButton 
+0

Müssen Sie ihm keinen Gruppennamen geben? z.B. @BeforeGroups ("Datenbank") –

+0

Es versteht nicht, wie es für irgendeine Gruppe üblich ist? –

+0

Basierend auf der Dokumentation http://www.mkyong.com/unittest/testng-groups-example/ - geben Sie einen Gruppennamen an. Versuch es. –

Antwort

0

für @BeforeGroups sollten Sie zunächst eine Gruppe definieren und dann die Anmerkung den Namen geben. Aus diesem Grund erhalten Sie eine Ausnahme mit dieser Anmerkung.

@BeforeGroup(groups={"SignupButton"}) 
+0

Es funktioniert nicht für mich. –

0

Das Problem ist mit Ihrer SignupPage-Klasse. Es sollte einen args oder default-Konstruktor haben. Oder besser Art und Weise der Umsetzung ist etwas, als belows:

signuppage = new Signup(driver); 

Und dann in Anmelden Klasse einen Konstruktor erstellen, wie unten:

public Signup(WebDriver driver) 
{ 
    PageFactory.initElements(driver, this); 
} 

EDIT: Führen Sie den Code im Debug-Modus. Fügen Sie einen Debug-Punkt in Zeile 27 dieser Klasse hinzu und sehen Sie, ob es Null ist. Wenn ja, dann füge einen Debug-Punkt in den Initialisierungsblock ein und schau, ob wann die Kontrolle dorthin geht und das sollte dir den Ablauf sagen.

+0

Ich habe versucht, aber immer noch null Zeiger Ausnahme. –

+0

Können Sie StackTrace einfügen? –

+0

Das gleiche wie in Frage gestellt :( –

Verwandte Themen