pytest.mark.parametrize
时间: 2023-04-29 08:03:36 浏览: 121
pytest.mark.parametrize 是 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)`
pytest.mark.parametrize 文件
pytest.mark.parametrize是pytest框架中的一个装饰器,用于参数化测试用例。它可以将不同的参数传递给同一个测试函数,以便多次运行测试用例。在引用\[1\]和引用\[2\]中,示例展示了如何使用pytest.mark.parametrize来传递单个变量的参数,其中引用\[1\]使用元组作为参数,引用\[2\]使用列表作为参数。而在引用\[3\]中,展示了如何结合yaml数据使用pytest.mark.parametrize。首先,通过read_yaml函数将yaml文件中的数据读取出来,并将其转换为列表形式。然后,将这个列表作为参数传递给pytest.mark.parametrize装饰器,从而实现参数化测试用例。在这个示例中,参数名为"data",并且测试函数test_add_case4可以通过"data"来访问每个测试数据中的具体值。这样,pytest框架会根据参数化的设置,多次运行测试函数,每次传递不同的参数值。
#### 引用[.reference_title]
- *1* *2* [4.pytest parametrize()参数化](https://blog.csdn.net/lzmlc0109/article/details/125719941)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [@pytest.mark.parametrize用法(yaml和fixture结合使用)](https://blog.csdn.net/qq_42870572/article/details/128149867)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文