Java @在测试之前,由于某种原因,它被忽略了
我正在使用TestNG Selenium+Java运行Cumber套件测试,并获得Java.lang.NullPointerException 我意识到问题是由于某种原因,@BeforeTest被忽略,导致了空指针问题 我正在使用TestNG 7.0.0,但也尝试使用最新的测试版Java @在测试之前,由于某种原因,它被忽略了,java,automated-tests,cucumber,testng,Java,Automated Tests,Cucumber,Testng,我正在使用TestNG Selenium+Java运行Cumber套件测试,并获得Java.lang.NullPointerException 我意识到问题是由于某种原因,@BeforeTest被忽略,导致了空指针问题 我正在使用TestNG 7.0.0,但也尝试使用最新的测试版 @BeforeTest() public void setUp() { driver = Web.createChrome(); // it call a method that has the Chrome
@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这里是步骤,如果您有其他类名,则更改类名和构造函数名
将@BeforeTest更改为@BeforeTest方法
资料来源:
第62行是否有driver=Web.createChrome,也分享createChromehi的功能,谢谢你的回答。问题更新为Web.javais steps.java 62文件行is->driver=Web.createChrome;嗯,对不起,我没有弄清楚62号线有什么问题。。因为如果我在uhumm之前使用JUnit annotation@运行,它会工作,是的,它现在工作得更好,但是我的@BeforeTest仍然没有被执行。。浏览器正在打开,因为正在从构造函数调用它。。。我以前评论过我的,但浏览器仍在打开:放置一些syso,看看它在执行周期中调用了什么,还是根本没有执行?您试图为每个测试调用驱动程序?您的理解有点混乱,test是针对TestNG的,而不是针对cumber的,在黄瓜和红豆中都存在前一种方法,前一种方法是检测红豆的有效方法。。。因此,您可能会遇到问题,因为执行顺序不同。您完全正确,我对TestNG和Cucumber感到困惑。。我以前只为@换过衣服,我所有的套房都很好。谢谢你的帮助!