<5>pytest:前置后置
目录:测试自动化学习 - pytest
说明:本篇博客基于pytest 6.2.5
总览
范围 | 前置 | 后置 | 代码位置 | 运行规则 |
---|---|---|---|---|
模块级 | setup_moudle | teardown_moudle | 模块 | 模块调用时,运行一次 |
函数级 | setup_function | teardown_function | 模块 | 函数调用时,每次运行 |
类级 | setup_class | teardown_class | 类 | 运行一次 |
方法级 | setup_method | teardown_method | 类 | 方法调用时,每次运行 |
类中 | setup | teardown | 类 | 方法调用时,每次运行 |
执行顺序
类外
setup_moudle
setup_function
case
teardown_function
teardown_moudle
类中
setup_moudle
setup_class
setup_method
setup
case
teardown
teardown_method
teardown_class
teardown_moudle
代码举例
代码
def setup_module():
print("\nsetup_module")
def teardown_module():
print("teardown_module")
def setup_function():
print("\nsetup_function")
def teardown_function():
print("teardown_function")
def test_case1():
print("测试用例_函数1")
def test_case2():
print("测试用例_函数2")
class TestClass:
def setup_class(self):
print("\nsetup_class")
def teardown_class(self):
print("teardown_class")
def setup_method(self):
print("\nsetup_method")
def teardown_method(self):
print("teardown_method")
def setup(self):
print("setup")
def teardown(self):
print("teardown")
def test_class_case1(self):
print("测试用例_类_方法1")
def test_class_case2(self):
print("测试用例_类_方法2")
输出
============================= test session starts =============================
collecting ... collected 4 items
setup_and_teardown.py::test_case1
setup_module
setup_function
PASSED [ 25%]测试用例_函数1
teardown_function
setup_and_teardown.py::test_case2
setup_function
PASSED [ 50%]测试用例_函数2
teardown_function
setup_and_teardown.py::TestClass::test_class_case1
setup_class
setup_method
setup
PASSED [ 75%]测试用例_类_方法1
teardown
teardown_method
setup_and_teardown.py::TestClass::test_class_case2
setup_method
setup
PASSED [100%]测试用例_类_方法2
teardown
teardown_method
teardown_class
teardown_module
============================== 4 passed in 0.03s ==============================
进程已结束,退出代码为 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程