03-pytest框架结构及调用顺序

 

pytest 框架结构

执行用例前后会执行setup, teardown 来完成用例的前置和后置条件。pytest框架中使用setup, teardown 更灵活,按照用例运行级别可以分为以下几类:

  • 模块级(setup_module/teardown_module)在模块始末调用
  • 函数级(setup_function/teardown_function)在函数始末调用(在类外部)
  • 类级(setup_class/teardown_class)在类始末调用(在类中)
  • 方法级(setup_method/teardown_method)在方法始末调用(在类中)
  • 方法级(setup/teardown)在方法始末调用(在类中,方法细化级别

 

调用顺序

setup_module>setup_class>setup_method>setup>teardown>teardown_method>teardown_class>teardown_module

图解:

03-pytest框架结构及调用顺序

 

验证上面的执行顺序,代码如下:

 1 def setup_module():
 2     print(开始  module)
 3 
 4 
 5 def teardown_module():
 6     print(结束 module)
 7 
 8 
 9 def setup_function():
10     print(开始 function)
11 
12 
13 def teardown_function():
14     print(结束 function)
15 
16 
17 def test_one():
18     print(这是one)
19 
20 
21 class TestDemo:
22 
23     def setup_class(self):
24         print(开始 class)
25 
26     def teardown_class(self):
27         print(结束 class)
28 
29     def setup_method(self):
30         print(开始 method)
31 
32     def teardown_method(self):
33         print(结束 method)
34 
35     def setup(self):
36         print(开始 setup)
37 
38     def teardown(self):
39         print(结束 setup)
40 
41     def test_two(self):
42         print(这是two)
43         assert 1 == 1
44 
45     def test_three(self):
46         print(这是three)
47         assert 1 > 0

 

执行结果:

 1 test_demo2.py 开始  module
 2 开始 function
 3 这是one
 4 .结束 function
 5 开始 class
 6 开始 method
 7 开始 setup
 8 这是two
 9 .结束 setup
10 结束 method
11 开始 method
12 开始 setup
13 这是three
14 .结束 setup
15 结束 method
16 结束 class
17 结束 module

setup_module和teardown_module在整个模块中只执行一次, setup_class和teardown_class在类里面只执行一次,setup_method/teardown_method和setup/teardown 在每个方法前后都会被调用。一般用的最多的是方法级别和类级别。

 

 

 写在最后的话:小白同学愿意和大家一起成长~

 

03-pytest框架结构及调用顺序

上一篇:被BAT疯抢的工程师,都是怎么拿到50万年薪Offer的?


下一篇:webpack 之搭建本地服务器