0
点赞
收藏
分享

微信扫一扫

Selenium26-测试固件

Fixture(测试固件)

  • Fixture(测试固件、也叫作测试夹具),书写在TestCase代码中的代码结构,用于前期初始化准备和后期清理收尾工作
  • 本质就是一些名称固定的方法

测试固件分类

  • 方法级别
    • 是普通方法,包含在每个测试方法执行前后都会执行的工作内容
  • 类级别
    • 是类方法,用@classmethod装饰,可以在每个测试类中所有方法执行前后都会执行的内容,在整个类中,执行前后各一次
    • Selenium26-测试固件_测试方法


方法级别
  • 每个测试方法运行前运行,测试前的初始化工作。一条用例执行一次,若N次用例就执行N次,根据用例的数量来定
  • def setUp(self):

  • 每个测试方法运行结束后运行,测试后的清理工作。一条用例执行一次,若N次用例就执行N次
  • def tearDown(self):

类级别
  • 所有的测试方法运行前运行,做前期准备,必须使用
  • # 装饰器进行修饰,整个类中只执行一次
    @classmethod
    def setUpClass(cls):

  • 所有的测试方法运行结束后运行,做后期清理工作,必须使用
  • # 装饰器进行修饰,整个类中只执行一次
    @classmethod
    def tearDownClass(cls):

顺序和次数
  • 类级别的测试固件:setUpClass和tearDownClass
    • 在整个类运行期间只执行一次
  • 方法级别测试固件:setUp和tearDown
    • 在每个测试方法执行前后都执行一次,有几个测试方法就会执行几次
  • 测试方法
    • 默认按照方法名称排序执行
    • 不是按照代码书写位置排序执行
    • Selenium26-测试固件_用例_02


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()



举报

相关推荐

0 条评论