UnitTest中:setUpClass(cls)与setUp(self)的区别与使用


setUpClass(cls) tearDownClass(cls) 类方法:

1. 执行函数方法前,先执行一次setUpClass(cls)里面的方法,执行完函数方法后,再执行一次tearDownClass(cls)里面的函数方法。

2、unittest默认根据ASCII码的顺序加载执行用例,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行。

3. 函数方法以test开头进行读取,不是test开头的不执行该方法。例如:test_login 执行  login_test 不执行

4、注意:setUpClass(cls) 与 tearDownClass(cls) 并不一定要组合使用,它们是同级关系不是上下级关系,可以单独拆分使用。例如:setUpClass(cls) 为前置条件,tearDown(self)为后置条件,那么setUpClass(cls)需要添加装饰器且里面的方法只会执行一次,tearDown(self)后置条件不用加装饰器,只是每执行完一个函数方法后,都会去执行一次tearDown(self)函数里面的方法-- 如图(2)输出:

使用必须要加 @classmethod内置装饰器,否则会报 “TypeError: setUpClass() missing 1 required positional argument: 'cls'”的错误。使用类方法执行所有用例时里面的方法只会执行一次,不会重复执行-- 如(1)输出:

图(1)

 

图(2)

 

-----------------------------------------------

setUp(self) tearDown(self) 函数:

1. 每次执行函数方法时,必须先执行一次setUp(self)函数,执行完一个函数方法后,必须再执行一次tearDown(self)函数。

2、unittest默认根据ASCII码的顺序加载执行用例,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行。

3. 当函数方法以test开头进行读取,不是以test开头的不执行该方法。

执行用例时每运行一条用例都会去执行一遍里面的方法,如下图输出:


进行定义全局变量并且赋值,用例执行时可以直接使用也可以替换重新赋值

 

以@classmethod
def tearDownClass(cls): 类方法定义后置的时候不能在里面进行调用其它地方的方法使用,须以 def tearDown(self): 函数方法进行定义后置的才能在里面调用其它地方的方法,具体原因还有待研究---

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM