Fixture(测试固件)
- Fixture(测试固件、也叫作测试夹具),书写在TestCase代码中的代码结构,用于前期初始化准备和后期清理收尾工作
- 本质就是一些名称固定的方法
测试固件分类
- 方法级别
- 是普通方法,包含在每个测试方法执行前后都会执行的工作内容
- 类级别
- 是类方法,用@classmethod装饰,可以在每个测试类中所有方法执行前后都会执行的内容,在整个类中,执行前后各一次
- 是类方法,用@classmethod装饰,可以在每个测试类中所有方法执行前后都会执行的内容,在整个类中,执行前后各一次
方法级别
- 每个测试方法运行前运行,测试前的初始化工作。一条用例执行一次,若N次用例就执行N次,根据用例的数量来定
def setUp(self):
- 每个测试方法运行结束后运行,测试后的清理工作。一条用例执行一次,若N次用例就执行N次
def tearDown(self):
类级别
- 所有的测试方法运行前运行,做前期准备,必须使用
# 装饰器进行修饰,整个类中只执行一次 @classmethod def setUpClass(cls):
- 所有的测试方法运行结束后运行,做后期清理工作,必须使用
# 装饰器进行修饰,整个类中只执行一次 @classmethod def tearDownClass(cls):
顺序和次数
- 类级别的测试固件:setUpClass和tearDownClass
- 在整个类运行期间只执行一次
- 方法级别测试固件:setUp和tearDown
- 在每个测试方法执行前后都执行一次,有几个测试方法就会执行几次
- 测试方法
- 默认按照方法名称排序执行
- 不是按照代码书写位置排序执行
import unittest
from calculate import Cal
class MyTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
print("类级别测试固件,负责整个类运行开始时的准备工作")
@classmethod
def tearDownClass(cls) -> None:
print("类级别测试固件,负责整个类运行结束后的收尾工作")
def setUp(self) -> None:
print("方法级别测试固件,每个测试方法执行前的准备工作")
def tearDown(self) -> None:
print("方法级别测试固件,每个测试方法执行后的收尾工作")
def test_add1(self):
c1 = Cal(10,20)
self.assertEqual(30, c1.add()) # add assertion here
def test_add2(self):
c1 = Cal(1.5,2.5)
self.assertEqual(4, c1.add()) # add assertion here
@unittest.skip("先不执行test_sub1的测试")
def test_sub1(self): # 断言失败,问题原因未考虑数据先后顺序
c1 = Cal(1.5,2.5)
self.assertEqual(1, c1.sub()) # add assertion here
if __name__ == '__main__':
unittest.main()
标签:Selenium26,self,def,测试,固件,执行,测试方法
From: https://www.cnblogs.com/sean-test/p/17006169.html