【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"])
-------------------------------------------------------------------------------------
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------