@pytest.mark.parametrize的使用方法
时间: 2023-03-15 15:19:21 浏览: 70
使用@pytest.mark.parametrize可以让你在一个函数中运行多个参数。它接受一个参数列表,其中每个参数都是一个元组,每个元组都会被传递给测试函数。如果你想运行多个参数集,只需要在参数列表中添加更多的元组即可。
相关问题
@pytest.mark.parametrize的用法
`@pytest.mark.parametrize`是pytest框架中的一个装饰器,用于参数化测试用例。它可以让我们根据不同的参数值运行同一个测试用例多次,以便于更全面地覆盖测试场景。
它的用法是将参数列表作为装饰器的参数,然后将测试用例中需要参数化的参数替换为装饰器传入的参数。例如:
```python
import pytest
@pytest.mark.parametrize("param1,param2,result", [(1,2,3), (2,3,5), (4,4,8)])
def test_add(param1, param2, result):
assert param1 + param2 == result
```
在这个示例中,我们定义了一个名为`test_add`的测试用例,其中包含三个参数`param1`、`param2`和`result`,分别表示加数1、加数2和预期结果。我们使用`@pytest.mark.parametrize`装饰器将三组参数传递给测试用例,分别是(1,2,3)、(2,3,5)和(4,4,8),分别代表了三个测试场景。在测试用例中,我们使用传入的参数来计算加法,并使用`assert`语句来断言计算结果是否符合预期。
当我们运行这个测试用例时,pytest框架会自动将三组参数传递给测试用例,并执行三次测试,分别对应三个测试场景。
@pytest.mark.parametrize
@pytest.mark.parametrize是pytest库中的一个装饰器,可以用来自动生成测试用例。它可以传入多个参数,每组参数对应一个测试用例。例如:
```
@pytest.mark.parametrize("x, y, expected", [(1, 2, 3), (2, 3, 5), (3, 4, 7)])
def test_add(x, y, expected):
assert add(x, y) == expected
```
上面的代码会生成三个测试用例,分别为:
- `test_add(1, 2, 3)`
- `test_add(2, 3, 5)`
- `test_add(3, 4, 7)`