pytest批量执行命令
时间: 2024-08-08 09:01:39 浏览: 151
Python实现批量执行同目录下的py文件方法
`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),都有一个新的测试实例被执行,并且打印出相应的测试结果。
这种批量执行的能力使得测试更容易管理和维护,特别是当涉及到大量相似的数据点或边缘情况时。利用这种方式,你可以在一次运行中验证多种场景,而无需为每种情况单独编写测试函数。
-
阅读全文