Pytest的setup和teardown方法

[created_at: 2020-06-18]
在测试用例中,用setup方法可以进行测试前的初始化或参数配置等工作,用teardown方法可以进行测试后的清理还原退出等工作。

在pytest中setup和teardown分为如下几种情况:

  • 模块级别 对整个.py文件作用 :setup_module/teardown_module
  • 类级别 对单个测试类起作用:teardown_class/teardown_class
  • 方法级别 对测试类中的测试方法起作用:setup/teardown

实例:

# 模块级别 --对这个文件起作用,所有测试类之前执行
def setup_module():
    print("==>setup_module")
# 模块级别 --对这个文件起作用,所有测试类之后执行
def teardown_module():
    print("==>teardown_module")
#测试类1
class Test_a:
    #类级别开始--类里面所有方法之前执行
    def setup_class(self):
        print("==>setup_class1")
    #类级别结束--类里面所有方法之后执行
    def teardown_class(self):
        print("==>teardown_class1")
    #方法级开始--类里每个测试方法执行前执行
    def setup(self):
        print("-->setup_method1")
    #方法级结束--类里每个测试方法执行后执行
    def teardown(self):
        print("-->teardown_method1")
    def test_a(self):
        print("-》》test_a1")
    def test_b(self):
        print("-》》test_b1")
#测试类2
class Test_b:
    #类级别开始--类里面所有方法之前执行
    def setup_class(self):
        print("==>setup_class2")
    #类级别结束--类里面所有方法之后执行
    def teardown_class(self):
        print("==>teardown_class2")
    #方法级开始--类里每个测试方法执行前执行
    def setup(self):
        print("-->setup_method2")
    #方法级结束--类里每个测试方法执行后执行
    def teardown(self):
        print("-->teardown_method2")
    def test_a(self):
        print("-》》test_a2")
    def test_b(self):
        print("-》》test_b2")

执行结果如下:

test_1.py::Test_a::test_a ==>setup_module       #在文件中所有测试用例开始前执行,只执行一次
==>setup_class1                                  #在测试类的所有测试用例开始前执行,只执行一次
-->setup_method1                                #在测试类的每个测试用例开始前执行
-》》test_a1                                       #测试类1的测试用例1
PASSED-->teardown_method1                       #在测试类的每个测试用例执行后执行

test_1.py::Test_a::test_b -->setup_method1
-》》test_b1                                      #测试类1的测试用例2
FAILED-->teardown_method1
==>teardown_class1                             #在测试类的所有测试用例执行完,最后执行,只执行一次

test_1.py::Test_b::test_a ==>setup_class2
-->setup_method2
-》》test_a2                                      #测试类2的测试用例1
PASSED-->teardown_method2

test_1.py::Test_b::test_b -->setup_method2
-》》test_b2                                      #测试类2的测试用例2
FAILED-->teardown_method2
==>teardown_class2
==>teardown_module                               #在所有测试用例执行完,最后执行,只执行一次

[我的导航目录]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容