testng注解继承

w8ntj3qf  于 2021-06-26  发布在  Java
关注(0)|答案(0)|浏览(169)

我有一个基类、一个中间类和一个测试类,每个类和类中都有注解。基本测试天然中间体和天然中间体。从理论上讲,它应该先在基础上执行注解,然后在中间执行注解,最后进行测试。
根据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
    }
}

有没有一个办法使这项工作或更好的解决办法?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题