1. 程式人生 > 其它 >【Python】測試框架中的setUp和teardown

【Python】測試框架中的setUp和teardown

unittest


 

setup()和teardown()兩個函式在每條測試用例執行時都會進行重複執行一次
該場景針對那些測試用例間有相互影響的場景,才需要在每執行一條新用例時進行一次初使化,執行完畢後再清空所有配置

setupclass(cls)和teardownclass(cls)兩個函式在一個用例集合執行前只會執行一次,然後再所有用例執行完成後再清空所有配置
此種用法主要用在用例之間相互沒有什麼影響的場景

 

import unittest

class TestAuto(unittest.TestCase):

    env = "sit"
    case_rownum = 1

    @classmethod
    
def setUpClass(cls): print("同一測試類下在所有測試用例執行前,有且只執行一次") @classmethod def tearDownClass(cls): print("同一測試類下在所有測試用例執行後,有且只執行一次") @classmethod def setUp(cls): print("同一測試類下在每個測試用例執行前,均執行一次") @classmethod def tearDown(cls): print("同一測試類下在每個測試用例執行後,均執行一次
") def test_case1(self): print("case1") def test_case2(self): print("case2") if __name__ == "__main__": unittest.main()

 

 

 

 

 

 

Pytest


 

模組級(setup_module/teardown_module)開始於模組始末,全域性的在類中不起作用
類級(setup_class/teardown_class)只在類中前後執行一次(在類中)
方法級(setup_method/teardown_method)開始於方法始末(在類中)
函式級(setup_function/teardown_function只對函式用例生效(在類中不生效)

import pytest

class TestAuto:

    env = "sit"
    num = 1

    def setup_class(self):
        print("同一測試類下在所有測試用例執行前,有且只執行一次")

    def teardown_class(self):
        print("同一測試類下在所有測試用例執行後,有且只執行一次")

    def setup(self):
        print("同一測試類下在每個測試用例執行前,均執行一次")

    def teardown(self):
        print("同一測試類下在每個測試用例執行後,均執行一次")

    def test_case1(self):
        print("case1")

    def test_case2(self):
        print("case2")

if __name__ == "__main__":
    pytest.main(["-s", "test_debug.py"])