코드 : 우선 순위 태그가있는 @Test 메소드를 사용하는 프로그램."우선 순위"태그를 사용할 때 TESTNG 프로그램의 문제
package testng1;
import static org.testng.Assert.assertEquals;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
public class testng {
public static WebDriver driver;
public void verifytitle()
{
System.setProperty("webdriver.ie.driver", "C:\\Users\\rprem\\Downloads\\IEDriverServer_x64_3.4.0\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
driver.navigate().to("https://google.com");
String title = driver.getTitle();
System.out.println(title);
Assert.assertEquals(title, "Google");
}
@Test (priority = 1)
public void verifytitle2()
{
driver.get("https://gmail.com");
String titlee = driver.getTitle();
Assert.assertEquals(titlee, "Gmail - Free Storage and Email from Google");
}
}
프로그램을 실행하면 "Java null pointer exception"문제가 발생합니다. 논리 방법에 따라 알파벳 순서로 실행됩니다. 우선 순위를 정하면 지정된 순서대로 실행됩니다. 그러나 그런 일은 일어나지 않습니다.
오류 메시지 :
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
===============================================
안녕하세요 Krishnan, 답변 해 주셔서 감사합니다. 하지만 여전히 작동하지 않았다, 여전히 null 포인터 예외가 발생했습니다. –
@BruceWayne -'verifyTitle()'메소드에서'WebDriver' 인스턴스화가 일어나기 때문에 직접'verifytitle2()'를 시도 할 때'NullPointerException'이 보일 것입니다. 이것이 일어날 수 없도록 내 대답을 업데이트했습니다. –