2017-09-14 3 views
0

Code: Programme utilisant la méthode @Test avec des balises de priorité. Lorsque j'exécute le programme, j'obtiens le problème "Java null pointer exception". Selon les méthodes logiques seront exécutées dans l'ordre alphabétique, quand je mets la priorité alors ils vont courir dans l'ordre donné. Mais ça ne se passe pas comme ça.Problème dans le programme TESTNG lorsque j'utilise la balise "Priority"

Message d'erreur:

Google 
PASSED: verifytitle 
FAILED: verifytitle2 
java.lang.NullPointerException 
    at testng1.testng.verifytitle2(testng.java:22) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108) 
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:661) 
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869) 
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) 
    at org.testng.TestRunner.privateRun(TestRunner.java:744) 
    at org.testng.TestRunner.run(TestRunner.java:602) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:380) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:289) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1226) 
    at org.testng.TestNG.runSuites(TestNG.java:1144) 
    at org.testng.TestNG.run(TestNG.java:1115) 
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76) 


=============================================== 
    Default test 
    Tests run: 2, Failures: 1, Skips: 0 
=============================================== 


=============================================== 
Default suite 
Total tests run: 2, Failures: 1, Skips: 0 
=============================================== 

Répondre

1

Le problème réside dans votre code de test.

Dans la méthode verifytitle() s'il vous plaît changer WebDriver driver = new InternetExplorerDriver();-driver = new InternetExplorerDriver();

Puisque vous assignez l'instance InternetExplorerDriver à une variable locale dans cette méthode, il est shadowing le niveau de la classe WebDriver et donc quand verifytitle2() tente d'y accéder, il déclenche Pour résoudre le problème, je suggérerais d'extraire la logique d'instanciation webdriver à une méthode @BeforeClass.

@BeforeClass() 
public void beforeClass() { 
    System.setProperty("webdriver.ie.driver", "C:\\Users\\rprem\\Downloads\\IEDriverServer_x64_3.4.0\\IEDriverServer.exe"); 
    driver = new InternetExplorerDriver(); 
} 
+0

Salut Krishnan, merci pour votre réponse. Mais cela n'a pas fonctionné, obtenant toujours l'exception de pointeur nul. –

+0

@BruceWayne - Vous verrez le 'NullPointerException' si vous êtes directement attemtped à exécuter' verifytitle2() 'parce que l'instanciation' WebDriver' se passe dans la méthode 'verifyTitle()'. J'ai mis à jour ma réponse pour m'assurer que cela n'arrive pas –