@beforetest testng 由于某种原因它被忽略了

@beforetest testng its being ignored for some reason

我正在 运行 我的 Cucumber 套件使用 TestNG (Selenium + Java) 进行测试并获得 java.lang.NullPointerException.

我意识到问题是我的@BeforeTest() 由于某种原因被忽略导致 NullPointer 问题。

我正在使用 TestNG 7.0.0(但也尝试使用最新的 Beta)。

@BeforeTest() 
public void setUp() {
    driver = Web.createChrome(); // it call a method that has the Chromedriver
}

Web.java

public class Web {

public static WebDriver createChrome() {

    System.setProperty("webdriver.chrome.driver", webdriver_path);

    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    driver.get("http://the-internet.herokuapp.com/");

    return driver;
}
}

输出

java.lang.NullPointerException
at br.dsanders.steps.steps.accessing_the_Tnternet_herokuapp_com_website(steps.java:62)
at ?.Given accessing the Tnternet.herokuapp.com website(testing.feature:9)

尝试如下:

public class steps {


    WebDriver driver = null;

    public steps() {

        this.driver=Web.createChrome();

    }

@BeforeMethod() 
public void setUp() {
    driver.get("http://the-internet.herokuapp.com/");
  }
}

注意此处的 ClassName 是 steps 如果您有其他 class 名称,则更改 class 名称和构造函数名称。

@BeforeTest 更改为 @BeforeMethod

来源:

What is the difference between BeforeTest and BeforeMethod in TestNG