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可以分开给指定的用例使用,更灵活

posted @ 2020-07-23 11:03  2020不在低调  阅读(132)  评论(0)    收藏  举报