parametrize用法
时间: 2023-10-28 10:05:51 浏览: 25
`parametrize` 是 Pytest 提供的一个装饰器,用于将测试用例参数化。它可以让我们在一个测试函数中运行多个测试用例,而不需要多次定义相同的测试函数。
下面是一个简单的例子,展示了如何使用 `parametrize` 装饰器:
```python
import pytest
@pytest.mark.parametrize("num, output", [(1, 11), (2, 22), (3, 35)])
def test_multiplication_11(num, output):
assert 11*num == output
```
在上面的例子中,我们定义了一个名为 `test_multiplication_11` 的测试函数,并使用 `parametrize` 装饰器将其参数化。装饰器的第一个参数是一个字符串,用于传递测试用例的参数。第二个参数是一个列表,其中包含多个元组,每个元组表示一个测试用例和预期输出。
运行这个测试函数时,pytest 将会运行三个测试用例,输出如下:
```
test_parametrize.py::test_multiplication_11[1-11] PASSED
test_parametrize.py::test_multiplication_11[2-22] PASSED
test_parametrize.py::test_multiplication_11[3-33] FAILED
```
在运行测试用例时,pytest 会为每个测试用例生成一个唯一的标识符,称为节点 ID。在上面的输出中,`[1-11]`、`[2-22]` 和 `[3-33]` 就是节点 ID。节点 ID 包含了测试用例的参数,方便我们在出现问题时进行排查。
总结一下,`parametrize` 装饰器可以大大简化测试用例的编写,减少重复代码,提高测试效率。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)