Pytest
1,pytest 添加 setup和teardown
A, 以特定名称来为所有用例进行设置
1 class TestCase(): 2 def setup_class(self): 3 print("====在整个类测试开始之前执行一次====") 4 5 def teardown_class(self): 6 print("====在整个类测试结束之后执行一次====") 7 8 def setup_method(self): 9 print("==每个测试用例开始前执行一次==") 10 11 def teardown_method(self): 12 print("==每个测试用例结束后执行一次==") 13 14 def setup(self): 15 print("=每个测试用例开始前执行一次=") 16 17 def teardown(self): 18 print("=每个测试用例结束后执行一次=") 19 20 def setup_module(): 21 print("全局前执行一次") 22 23 def teardown_module(): 24 print("全局后执行一次")
B, 通过 @pytest.fixture(scope="") 来设置级别 ,给对应的用例传入函数名称来区分执行的用例(那些用例需要就给那些用例传入)
1 class TestCase(): 2 3 @pytest.fixture(scope="function") 4 def test_setup_teardown_case(self): 5 print("====整个测试类开始前只执行一次setup_case====") 6 yield 7 print("====整个测试类结束后只执行一次teardown_case====") 8 @pytest.fixture(scope="class") 9 def test_setup_teardown_class(self): 10 print("====整个测试类开始前只执行一次setup_class====") 11 yield 12 print("====整个测试类结束后只执行一次teardown_class====") 13 @pytest.fixture(scope="module") 14 def test_setup_teardown_module(self): 15 print("==整个模块开始前执行一次setup_module==") 16 yield 17 print("====整个模块结束后执行一次teardown_module====") 18 19 def test_three(self,test_setup_teardown_case,test_setup_teardown_class,test_setup_teardown_module): 20 print("three") 21 22 def test_four(self,test_setup_teardown_case,test_setup_teardown_class,test_setup_teardown_module): 23 print("four")
运行结果:
==整个模块开始前执行一次setup_module== ====整个测试类开始前只执行一次setup_class==== ====整个测试类开始前只执行一次setup_case==== three .====整个测试类结束后只执行一次teardown_case==== ====整个测试类开始前只执行一次setup_case==== four .====整个测试类结束后只执行一次teardown_case==== ====整个测试类结束后只执行一次teardown_class==== ====整个模块结束后执行一次teardown_module==== 2 passed in 0.12s
两者的区别: A可以直接给所有的用例进行设置,更方便,B可以分开给指定的用例使用,更灵活

浙公网安备 33010602011771号