@pytest.mark.parametrize
时间: 2023-04-29 17:04:04 浏览: 109
@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.allure.step用法
`@pytest.mark.parametrize` 是 pytest 提供的一个装饰器,可以用于参数化测试用例。它可以让我们在测试用例中使用多组参数来执行同一个测试用例,从而减少测试用例的编写量,提高效率。
示例代码:
```python
import pytest
@pytest.mark.parametrize("input, expected_output", [
(1, 2),
(2, 3),
(3, 4),
(4, 5),
])
def test_increment(input, expected_output):
assert input+1 == expected_output
```
`@pytest.mark.allure.step` 也是 pytest 提供的一个装饰器,用于生成测试报告。它可以将测试用例中的每个步骤作为报告的一个单独的步骤展示,从而更直观地展示测试用例的执行情况。
示例代码:
```python
import pytest
import allure
@allure.step("输入用户名和密码")
def input_username_and_password(username, password):
pass
@allure.step("点击登录按钮")
def click_login_button():
pass
@allure.step("验证登录成功")
def verify_login_success():
pass
def test_login():
input_username_and_password("testuser", "testpass")
click_login_button()
verify_login_success()
```
以上是 `@pytest.mark.parametrize` 和 `@pytest.mark.allure.step` 的基本用法。需要注意的是,`@pytest.mark.allure.step` 需要安装 `pytest-allure-adaptor` 才能正常使用。
@pytest.mark.parametrize传参
@pytest.mark.parametrize是pytest框架中的一个装饰器,用于参数化测试。它可以让我们在测试函数中传入多组参数,从而避免重复编写测试用例的繁琐过程。使用该装饰器时,我们需要在函数上方添加该装饰器,并在装饰器中指定参数名和参数值的列表。在测试函数中,我们可以通过参数名来引用传入的参数值,从而进行测试。
阅读全文