pytest.mark 标记的使用
时间: 2024-10-12 21:13:32 浏览: 51
`pytest.mark`是Pytest框架中的一个装饰器,它允许测试函数或测试模块附加额外的元数据,以便更精细地管理和组织测试。这些标记可以用来控制测试的运行条件、分类、优先级等。常见的`pytest.mark`有以下几个用途:
1. `@pytest.mark.parametrize`: 用于参数化测试,可以一次运行多种输入组合,方便快速测试各种场景。
```python
@pytest.mark.parametrize("arg1, arg2", [(1, 2), (3, 4)])
def test_addition(arg1, arg2):
assert arg1 + arg2 == 3
```
2. `@pytest.mark.skipif`: 如果某个条件成立,这个标记会让测试跳过,例如在特定环境或版本下。
```python
@pytest.mark.skipif(sys.platform == "win32", reason="Skip on Windows")
def test_windows_only_feature():
pass
```
3. `@pytest.mark.xfail`: 表示预期测试会失败,但如果未来修复了问题,可以标记为pass。
```python
@pytest.mark.xfail(reason="Unstable API call")
def test_api_call():
assert api_call() is not None
```
4. `@pytest.mark.slow`: 标记为慢速测试,这类测试在持续集成环境中可能会被限制执行次数。
阅读全文