0
点赞
收藏
分享

微信扫一扫

setup和teardown详解【pytest系列 3】

史值拥 2022-03-31 阅读 80

1、pytest中的前置处理和后置处理

  • 模块级别
    • setup_module 整个.py模块开始执行前,执行一次(全程只一次)
    • teardown_module 整个.py模块结束后,执行一次(全程只一次)
  • 函数级别
    • setup_function 每次函数级别的用例执行前,执行一次(可能多次)
    • teardown_function 每次函数级别的用例执行后,执行一次(可能多次)
  • 类级别
    • setup_class 整个测试类开始前,执行一次(全程只一次)
    • teardown_function 整个测试类结束后,执行一次(全程只一次)
  • 类中方法级别
    • setup_method 类中的每个用例执行前,都会执行一次(可能多次)
    • teardown_function 类中的每个用例执行后,都会执行一次(可能多次)

2、详见以下代码及执行结果

  • 代码
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2022/3/31 3:40 下午
    # @Author  : chenbh
    # @File    : test_demo.py
    
    
    def setup_module():
        print(f"=========this is setup_module")
    
    
    def teardown_module():
        print(f"=========this is teardown_module")
    
    
    def setup_function():
        print("=========this is setup_function")
    
    
    def teardown_function():
        print("=========this is teardown_function")
    
    
    def test_one():
        print("=========this is test_one")
    
    
    def test_tow():
        print("=========this is test_two")
    
    
    class TestCase():
        def setup_class(self):
            print("=========this is setup_class")
    
        def teardown_class(self):
            print("=========this is teardown_class")
    
        def setup_method(self):
            print("=========this is setup_method")
    
        def teardown_method(self):
            print("=========this is teardown_method")
    
        def setup(self):
            print("=========this is setup")
    
        def teardown(self):
            print("=========this is teardown")
    
        def test_three(self):
            print("=========this is test_three")
           
        def test_four(self):
            print("=========this is test_four")
    
  • 结果
    ============================= test session starts ==============================
    platform darwin -- Python 3.9.2, pytest-7.1.1, pluggy-1.0.0 -- /Users/chenbinhao/Desktop/Sunnada-work/learnPytest/venv/bin/python
    cachedir: .pytest_cache
    rootdir: /Users/chenbinhao/Desktop/Sunnada-work/learnPytest/demo
    collecting ... collected 4 items
    
    test_demo.py::test_one 
    =========this is setup_module
    =========this is setup_function
    PASSED                                            [ 25%]
    =========this is test_one
    =========this is teardown_function
    
    test_demo.py::test_tow 
    =========this is setup_function
    PASSED                                            [ 50%]
    =========this is test_two
    =========this is teardown_function
    
    test_demo.py::TestCase::test_three 
    =========this is setup_class
    =========this is setup_method
    PASSED                                [ 75%]
    =========this is test_three
    =========this is teardown_method
    
    test_demo.py::TestCase::test_four 
    =========this is setup_method
    PASSED                                 [100%]
    =========this is four
    =========this is teardown_method
    =========this is teardown_class
    =========this is teardown_module
    
    
    ============================== 4 passed in 0.04s ===============================
    
    

参考文章:https://www.cnblogs.com/poloyy/p/12641991.html

举报

相关推荐

0 条评论