包含@beforeTest方法的类:
package com.test.poc;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
public class testNGPackagesPOC {
WebDriver driver;
@BeforeTest(groups = {"testGroup"})
public void beforeTest() {
System.setProperty("webdriver.gecko.driver", "/Users/hemasundarpenugonda/xebia/projects/mck/iservice-app-automation/src/main/resources/drivers/geckodriver");
driver = new FirefoxDriver();
driver.get("http://google.com");
}
@AfterTest
public void afterTest() {
// driver.quit();
}
}
包含@test方法的类:
package com.test.poc;
import org.testng.annotations.Test;
public class testNGPackagesPOC1 extends testNGPackagesPOC {
@Test(groups = {"testGroup"})
public void test() {
driver.get("http://google.com");
}
}
TestNG.xml:
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
<test name="Test Name">
<groups>
<run>
<include name="testGroup" />
</run>
</groups>
<!--<classes>-->
<!--<class name="com.test.poc.testNGPackagesPOC1"/>-->
<!--</classes>-->
<packages>
<package name="com.test.poc" />
</packages>
</test>
</suite>
情况1:当我执行上述TestNG xml(带有packages标签)时,在@Test方法中为驱动程序对象显示了空指针异常。
案例2:当我使用classes标签执行相同的Test.xml时,一切执行正常。
案例3:当我通过删除@AfterTest方法(带有packages / classes标签)执行相同的TestNG.xml时,一切执行正常。
我在TestNg.xml中使用包标记(案例1 )怎么办?