c 高性能网站开发,数据库导入wordpress,郑州哪家做网站便宜,ftp上传wordpress文章目录 Pytest 固件核心概念Pytest 固件原理Pytest 固件分类方法级函数级类级模块级夹具优先级测试用例执行优先级固件不仅如此后续大有文章 Pytest 固件核心概念 在 pytest 测试框架中#xff0c;固件是一个核心概念#xff1b; 它是一种特殊的函数#xff0c;用于在测试… 文章目录 Pytest 固件核心概念Pytest 固件原理Pytest 固件分类方法级函数级类级模块级夹具优先级测试用例执行优先级固件不仅如此后续大有文章 Pytest 固件核心概念 在 pytest 测试框架中固件是一个核心概念 它是一种特殊的函数用于在测试之前和之后设置和清理测试环境。 固件可以确保测试在一致和可预测的环境中执行同时它们也可以跨多个测试函数、类和会话共享。 官方标注叫固件但这词不太好理解大家都称之为夹具想象一下汉堡包就明白夹具的含义了。 Setup设置: 在 pytest 中setup 通常指的是在每个测试之前执行的一些准备工作例如初始化变量、打开文件、连接到数据库等。setup 方法可以定义在测试模块、测试类、测试函数或测试方法级别。 Teardown拆卸: teardown 是指在每个测试执行完成后进行的一些清理工作例如关闭文件、断开数据库连接、释放资源等。和 setup 一样teardown 方法也可以定义在测试模块、测试类、测试函数或测试方法级别。 Pytest 固件原理 检索和执行固件: 当 pytest 遇到一个测试函数或方法时会根据作用域规则来检索并执行相应的 setup 方法。 setup方法用于在每个测试之前设置测试环境。 一旦测试函数或方法执行完毕pytest 会按照相反的作用域顺序执行相应的 teardown 方法。 teardown 方法用于在每个测试之后清理测试环境 固件作用域: setup 和 teardown 方法的作用域决定了它们在哪里被调用。pytest 支持以下作用域函数级function scope: setup 和 teardown 仅在单个测试函数或方法之前和之后执行。类级class scope: 如果在一个测试类中定义了 setup_class 和 teardown_class 方法则这些方法会在类中的所有测试方法之前和之后执行一次。模块级module scope: 如果在模块级别定义了 setup_module 和 teardown_module 方法则这些方法会在整个模块中的所有测试之前和之后执行一次。会话级session scope: setup_session 和 teardown_session 在整个测试会话开始时和结束时执行一次。 固件执行顺序: 当存在多个作用域级别的 setup 和 teardown 方法时它们的执行顺序遵循以下规则会话级setup_session - 测试 - teardown_session模块级setup_module - 模块内测试 - teardown_module类级setup_class - 类内测试 - teardown_class函数级setup - 测试函数 - teardown Pytest 固件分类
类型函数描述方法级setup_method / teardown_method在类中的每个测试方法之前/之后执行函数级setup_function / teardown_function在类外的每个测试函数之前/之后执行类级setup_class / teardown_class在类中的所有测试方法运行之前/之后执行一次模块级setup_module / teardown_module在整个模块的所有测试运行之前/之后执行一次
方法级 函数级 类级 模块级 夹具优先级 测试用例执行优先级 示例代码 import pytestdef addition(x, y):return x ydef test_01_a():print(正在执行 test_a 函数...)assert addition(3, 5) 8class TestClassCase01:staticmethoddef setup_method():print(\nsetup_method被调用前置执行)staticmethoddef teardown_method():print(\nteardown_method被调用后置执行)def test_01_b(self):assert a in appledef test_01_e(self):assert p in appledef test_01_d(self):assert l in appledef test_01_c(self):assert e in appleif __name__ __main__:pytest.main() 执行结果 固件不仅如此后续大有文章 暂略