Pytest框架之 - 预处理方法setup和teardown

  • 作者:lwj
  • 分类:Pytest
  • 发表日期:2020-10-28 21:36:24
  • 阅读(510)
  • 评论(0)

说明

Python单元测试框架unittest有两个前置方法和两个后置方法, 分别是setupsetupClassteardown 和 teardownClass


预处理方法

Pytest也贴心的提供了类似的方法, 一共有十种

模块级别:setup_module、teardown_module   —   每个.py文件前后执行一次

函数级别:setup_function、teardown_function   —   每个不在类中的函数前后执行一次

类级别:setup_class、teardown_class   —   每个class前后执行一次

类方法级别:setup_method、teardown_method   —   每个class中的方法setup之前和teardown之后执行一次

类方法细化级别:setup、teardown    —   每个class中的方法前后执行


代码

用过unittest的对这些预处理方法都不陌生, 直接来看代码和运行结果

# <-- test_one.py -->
#!/usr/bin/python3
# coding=utf-8
# Author: 文

import pytest

def setup_module():
    print(" ---- setup_module 整个.py文件开始时执行一次 ----- ")

def teardown_module():
    print(" ---- teardown_module 整个.py文件结束时执行一次 ----- ")

class Test_One():
    def setup_method(self):
        print(" ---- setup_method 每个用例的setup前执行一次 ----- ")

    def teardown_method(self):
        print(" ---- teardown_method 每个用例的teardown后执行一次 ----- ")

    def setup_class(self):
        print(" ---- setup class 每个测试类开始前执行一次 ----- ")

    def teardown_class(self):
        print(" ---- teardown class 每个测试类结束后执行一次 ----- ")

    def setup(self):
        print(" ---- setUp 每个测试用例前执行一次 ----- ")

    def teardown(self):
        print(" ---- teardown 每个测试用例后执行一次 ----- ")

    def test_a(self):
        print("____a")

    def test_b(self):
        print("____b")

def setup_function():
    print("===每个函数开始前都执行setup_function===")

def teardown_function():
    print("===每个函数结束后都执行teardown_function====")

def test_c():
    print("=====>  test_c")

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

执行结果:

F:\Python3.6.5\python.exe E:/xxx/test_one.py
============================= test session starts =============================
platform win32 -- Python 3.6.5, pytest-6.1.1, py-1.9.0, pluggy-0.13.1
rootdir: E:/xxx/, configfile: pytest.ini
collected 3 items

test_one.py  ---- setup_module 整个.py文件开始时执行一次 ----- 
 ---- setup class 每个测试类开始前执行一次 ----- 
 ---- setup_method 每个用例的setup前执行一次 ----- 
 ---- setUp 每个测试用例前执行一次 ----- 
____a
. ---- teardown 每个测试用例后执行一次 ----- 
 ---- teardown_method 每个用例的teardown后执行一次 ----- 
 ---- setup_method 每个用例的setup前执行一次 ----- 
 ---- setUp 每个测试用例前执行一次 ----- 
____b
. ---- teardown 每个测试用例后执行一次 ----- 
 ---- teardown_method 每个用例的teardown后执行一次 ----- 
 ---- teardown class 每个测试类结束后执行一次 ----- 
===每个函数开始前都执行setup_function===
=====>  test_c
.===每个函数结束后都执行teardown_function====
 ---- teardown_module 整个.py文件结束时执行一次 ----- 

============================== 3 passed in 0.01s ==============================

Process finished with exit code 0

 ~ 不积跬步无以至千里

觉得不错,支持一下!

提交评论

您尚未登录,登录之后方可评论~ 登录 or 注册

评论列表

暂无评论
返回顶部

建议反馈

1. 可在博文底部留言评论

2. 发邮件到i_suichuan@163.com