4.pytest中固定装置setup和teardown

pytest提供了不同级别的setup和teardown,来完成测试中前置和后置的操作。

1.函数级别:setup_function/teardown_function

def test_source():
    print('##### 打印功能 #####')

def setup_function():
    print('----- 开始打印 -----')

def teardown_function():
    print('----- 结束打印 -----')

 2.类级别:setup_class/teardown_class

def add(a,b):
    return a+b
#注意setup_class 和teardown_class 必须写在类中
class Test_add():
   
    def setup_class(self):
        print('----- 计算开始 -----')

    def teardown_class(self):
        print('----- 计算结束 -----')

    def test_1(self):
        print('----- 正在第一次计算 -----')
        assert add(1,2)==3

    def test_2(self):
        print('----- 正在第二次计算 -----')
        assert add(2,3)==5

 3.方法级别:setup_method/teardown_method

def add(a,b):
    return a+b

class Test_add():
  
    def setup_class(self):
        print('我是类级别的setup')

    def teardown_class(self):
        print('我是类级别的teardown')
   # 注意:setup_method和teardown_method 必须放在类中
    def setup_method(self):
        print('我是方法级别的setup')

    def teardown_method(self):
        print('我是方法级别的teardown')

    def test_1(self):
        print('----- 正在第一次计算 -----')
        assert add(1,2)==3

    def test_2(self):
        print('----- 正在第二次计算 -----')
        assert add(2,3)==5

4.模块级别:setup_module/teardown_module

def test_source():
    print('##### 打印功能 #####')

def setup_function():
    print('----- 开始打印 -----')

def teardown_function():
    print('----- 结束打印 -----')

def setup_module():
    print('我是模块级别的setup')

def teardown_module():
    print('我是模块级别的module')

def add(a,b):
    return a+b

class Test_add():

    def setup_class(self):
        print('我是类级别的setup')

    def teardown_class(self):
        print('我是类级别的teardown')

    def setup_method(self):
        print('我是方法级别的setup')

    def teardown_method(self):
        print('我是方法级别的teardown')

    def test_1(self):
        print('----- 正在第一次计算 -----')
        assert add(1,2)==3

    def test_2(self):
        print('----- 正在第二次计算 -----')
        assert add(2,3)==5

 5.单独的setup和teardown

  使用单独的setup和teardown其作用和setup_function/teardown_function/setup_method/teardown_method 一样

总结上述各级别的setup和teardown如果其中setup出现异常则不会执行teardown的操作

posted @ 2020-02-02 16:47  不休不止  阅读(315)  评论(0编辑  收藏  举报