pytest mark标记
时间: 2023-07-28 11:54:09 浏览: 147
pytest中的mark标记是一种用于标记单个测试用例或一组测试用例的机制,它可以为测试用例添加自定义的属性(如标签、级别等),以便更好地组织和管理测试用例。
使用mark标记的方法如下:
1. 在测试函数/方法上添加装饰器`@pytest.mark.<markname>`,其中`<markname>`是自定义的标记名称。
2. 在运行pytest时,可以使用`-m <markname>`选项来过滤测试用例。例如`pytest -m <markname>`只会运行带有`<markname>`标记的测试用例。
常见的mark标记包括:
- `@pytest.mark.skip(reason)` 跳过测试用例,reason是跳过的原因。
- `@pytest.mark.parametrize(argnames, argvalues)` 参数化测试用例,argnames是参数名称,argvalues是参数值列表。
- `@pytest.mark.xfail(reason)` 标记预期失败的测试用例,reason是预期失败的原因。
- `@pytest.mark.timeout(seconds)` 指定测试用例运行的最大时间,超时将被中止。
除了常见的标记外,还可以自定义标记,例如`@pytest.mark.smoke`表示烟测试用例,`@pytest.mark.security`表示安全测试用例等,以便更好地组织和管理测试用例。
相关问题
pytest mark
pytest mark 是pytest库中的一个功能,用于向测试函数添加元数据标签。它允许你在运行测试时指定特定条件,比如标记某个测试为忽略、只在特定环境中运行,或者作为性能基准等。你可以通过`@pytest.mark.tag_name`装饰器来应用标记,然后使用命令行选项或pytest内置的`-m`标志来选择性地运行带特定标记的测试。
例如:
```python
import pytest
@pytest.mark.skip(reason="This test is not ready yet")
def test_something():
...
@pytest.mark.performance
def test_performance intensive_computation():
...
```
在运行测试时,可以使用`pytest -m "skip or performance"`来仅运行带有指定标记的测试。这使得测试更易于管理和组织,也方便了团队根据需要调整测试策略。
pytest.mark 标记的使用
`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`: 标记为慢速测试,这类测试在持续集成环境中可能会被限制执行次数。
阅读全文