我有一个基类、一个中间类和一个测试类,每个类和类中都有注解。基本测试天然中间体和天然中间体。从理论上讲,它应该先在基础上执行注解,然后在中间执行注解,最后进行测试。
根据testng文件https://testng.org/doc/documentation-main.html#annotations 它应该起作用。”testng类超类中注解的行为
当将上面的注解放在testng类的超类上时,它们也将被继承。例如,这对于将多个测试类的测试设置集中在一个公共超类中非常有用。
在这种情况下,testng保证“@before”方法按继承顺序执行(先执行最高的超类,然后沿继承链执行),而“@after”方法按相反顺序执行(沿继承链执行)
public void base(){
@BeforeTest
public void setup(){
//initialize webdirver & stuff
}
@AfteTest
public void tearDown(){
//quit driver
}
}
public void logIn extends base() {
@BeforeClass
public void login(){
//do stuff
}
@AfterClass
public void logout(){
//do stuff
}
}
public void test1 extends login() {
@test
public void test(){
//do stuff
}
}
我的想法是初始化webdriver,然后登录,然后执行测试,然后注销,最后退出驱动程序,但它不起作用。在执行测试时,它在login类中显示一个错误,因为驱动程序为null。原来testng没有考虑基类中的注解。
我去掉了login类,它进行驱动程序初始化。我也尝试了不同的注解和三类的想法,但没有任何效果。
public void base(){
@BeforeTest
public void setup(){
//initialize webdirver & stuff
}
@AfteTest
public void tearDown(){
//quit driver
}
}
public void test1 extends base() {
@test
public void test(){
//do stuff
}
}
有没有一个办法使这项工作或更好的解决办法?
暂无答案!
目前还没有任何答案,快来回答吧!