pytest装饰器实现批量造数

`pytest` 提供了一个强大的命令集来执行各种测试任务,其中`pytest.mark.parametrize()` 就是一种功能强大且常用的特性,允许我们对多个测试数据点进行批量执行。这意味着我们可以编写一个测试函并提供一组数据作为参,`pytest` 将自动生成对应于每个数据点的新测试实例,从而达到批量执行的效果。 下面是如何使用`pytest.mark.parametrize()`的基本示例: 假设我们要测试一个计算阶乘的功能。首先,我们需要导入必要的库和装饰器: ```python import pytest from math import factorial # 定义一个测试函,使用 @pytest.mark.parametrize 装饰器 @pytest.mark.parametrize("n", [0, 5, 10]) def test_factorial(n): result = factorial(n) assert result == n * (factorial(n-1) if n > 1 else 1), f"Factorial of {n} should be {result}" ``` 在这个例子中,`test_factorial` 函接收一个参 `n` 并计算其阶乘。我们使用 `@pytest.mark.parametrize("n", [0, 5, 10])` 对这个函进行注解,告诉 pytest 我们想要分别使用参值 0、5 和 10 执行此测试。 接下来,运行 `pytest` 命令: ```bash pytest -v ``` 或者更具体地: ```bash pytest -v tests/your_test_module.py::test_factorial ``` 这里 `-v` 参表示 verbose 输出,可以看到针对每个参化的测试实例的详细结果。对于上面的例子,你会看到针对每一个 `n` 值(即0、5、10),都有一个新的测试实例被执行,并且打印出相应的测试结果。 这种批量执行的能力使得测试更容易管理和维护,特别是当涉及到大量相似的数据点或边缘情况时。利用这种方式,你可以在一次运行中验证多种场景,而无需为每种情况单独编写测试函。 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值