pytest.param的marks
时间: 2024-04-24 15:23:50 浏览: 12
pytest.param 是 pytest 提供的一个装饰器,用于标记测试用例或测试参数。它可以在测试用例或测试参数上添加自定义标记,以便在运行测试时进行选择性的过滤或执行特定的操作。
使用 pytest.param 可以给测试用例或测试参数添加 marks,例如:
```python
import pytest
@pytest.mark.slow
def test_function():
pass
@pytest.mark.parametrize("input, expected", [
pytest.param(1, 2, marks=pytest.mark.smoke),
pytest.param(3, 4, marks=[pytest.mark.smoke, pytest.mark.slow]),
])
def test_addition(input, expected):
assert input + 1 == expected
```
在上面的例子中,`test_function` 和 `test_addition` 都使用了 pytest.param 来添加 marks。`@pytest.mark.slow` 表示将 `test_function` 标记为 "slow",而 `pytest.param(1, 2, marks=pytest.mark.smoke)` 和 `pytest.param(3, 4, marks=[pytest.mark.smoke, pytest.mark.slow])` 则将 `test_addition` 中的参数组合标记为 "smoke" 和 "slow"。
在运行测试时,可以使用 `-m` 选项来选择性地执行特定标记的测试,例如:`pytest -m slow` 将只运行被标记为 "slow" 的测试用例。
这样可以方便地对测试用例进行分类、过滤和执行不同的操作。