当我在testNG.xml文件中使用程序包标记,并在层次结构中使用@beforeTest&@test方法时,驱动程序实例在@test方法中变为null,

时间:2018-09-28 08:44:20

标签: selenium-webdriver testng

包含@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 )怎么办?

0 个答案:

没有答案