如何使用pytest-describe插件组织pytest测试用例?求嵌套块示例
使用pytest-describe组织嵌套测试用例的示例
1. 先安装插件
pip install pytest-describe
2. 编写嵌套结构的测试代码
创建一个测试文件(比如test_nested_calculator.py),下面是支持任意嵌套的示例:
from pytest import describe, it, context # 用类组织顶层测试组 @describe("计算器类") class TestCalculator: @describe("加法功能") def test_addition(self): calculator = Calculator() @context("输入两个正数") def _(): @it("返回正确的和") def _(): assert calculator.add(2, 3) == 5 @it("结果大于任意输入数") def _(): result = calculator.add(4, 5) assert result > 4 assert result > 5 @context("输入包含负数") def _(): @it("正确计算正负相加结果") def _(): assert calculator.add(-1, 3) == 2 assert calculator.add(5, -2) == 3 # 多层嵌套示例 @describe("多负数相加场景") def __(): @it("正确返回负数和") def _(): assert calculator.add(-3, -4) == -7 # 用函数组织独立测试组 @describe("独立测试集合") def test_standalone_group(): @it("基础断言测试") def _(): assert 1 + 1 == 2 @context("复杂验证场景") def _(): @describe("深层嵌套测试") def __(): @it("多层嵌套仍能被识别执行") def _(): assert len("pytest-describe") == 14 # 测试用的辅助类 class Calculator: def add(self, a, b): return a + b
3. 运行测试
在终端执行命令:
pytest test_nested_calculator.py -v
关键说明
@describe:用来定义测试分组,可装饰类或函数,把相关测试用例归类@context:是@describe的别名,更适合描述测试场景的上下文条件@it:标记具体的测试用例,每个被@it装饰的函数都会被pytest作为独立测试项执行- 支持任意层级的嵌套,不管是类内还是函数内的嵌套结构,pytest都能正确识别并执行
运行输出示例
collected 7 items test_nested_calculator.py::TestCalculator::test_addition::_::_ PASSED test_nested_calculator.py::TestCalculator::test_addition::_::_ PASSED test_nested_calculator.py::TestCalculator::test_addition::_::_ PASSED test_nested_calculator.py::TestCalculator::test_addition::__::_ PASSED test_nested_calculator.py::test_standalone_group::_ PASSED test_nested_calculator.py::test_standalone_group::_::__::_ PASSED
内容的提问来源于stack exchange,提问作者abhijeet more
相关产品推荐
相关产品推荐

