我正在尝试通过右键单击TestNG.xml作为测试套件来运行TestNG中的测试组并获得低于错误。
java.lang.NullPointerException
at execution_Engine.TestCase1_Login.Login(TestCase1_Login.java:54)
注意:当我自己运行测试(而不是测试套件)时,它运行正常。
有人能够善意地指出问题是什么吗?并解决了这个问题。
的testng.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Smoke tests">
<test name="regressions Test Suite">
<groups>
<run>
<include name="Regression"/>
</run>
</groups>
<classes>
<class name="execution_Engine.TestCase1_Login"/>
<class name="execution_Engine.TestCase2_InvalidLogin"/>
</classes>
<packages>
<package name="execution_Engine" />
</packages>
</test>
</suite>
@SuppressWarnings("unused")
public class TestCase1_Login {
public static WebDriver driver = null;
@BeforeMethod
public static void LaunchIEandNavigate() {
/*** Launch IE **/
System.setProperty "webdriver.ie.driver", "C:\\IE\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
/*** implicit Wait **/
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
/*** Navigate to URL **/
driver.get("http://google.com");
@Test(enabled = true, groups = "Regression")
public void Login() {
/*** Login Action **/
driver.findElement(By.id("UserId")).sendKeys("DummyUser"); Line 54
driver.findElement(By.id("Password")).sendKeys("password");
driver.findElement(By.id("Submit-button")).click();
System.out.println("Testcase1 - ValidLogin executed sucessfully.");
}
@AfterMethod
public void CloseIEandQuit() {
//driver.switchTo().defaultContent();
/** Close and quit browser*/
driver.close();
driver.quit();
}
答案 0 :(得分:3)
只需将(alwaysRun = true)添加到@BeforeMethod注释。
答案 1 :(得分:1)
问题:
如何在带有扩展报告的POM中使用分组概念时解决NULLPOINTEREXCEPTION
?
解决方案:
答案 2 :(得分:1)
要添加到上述答案,请在您正在使用的所有注释中添加(alwaysRun = true)。我有@BeforeClass和@BeforeMethod一起注释。因此,将(alwaysRun = true)添加到构成测试一部分的所有注释中。
@Parameters("browser")
@BeforeClass(alwaysRun=true)
public void setupDriver(String browser)
{
application=new SSC_NewUserRegisteration(browser);
}
@BeforeMethod(alwaysRun=true)
public void launchApplication()
{
application.app_launchApplication();
}
@Test(priority=1, groups = {"Valid Data"})
public void submitWithAadharDetails()
{
application.app_setTestData(1);
application.app_fillNewUserRegisterationDetails();
application.app_submitData();
}
答案 3 :(得分:0)
根本原因是您还必须在 before 方法中或在 class 或 alwaysRun 之前添加组。