pytest中的markers
时间: 2023-10-26 11:17:56 浏览: 49
在 Pytest 中,marker 是用来给测试函数打标签的一种机制。通过使用 marker,我们可以更方便地对测试函数进行分类、筛选和执行。
在 Pytest 中,我们可以通过在测试函数的定义上使用装饰器 @pytest.mark 来给测试函数打标签。例如,我们可以定义一个名为 slow 的 marker,来标记那些需要较长时间运行的测试函数:
```python
import pytest
@pytest.mark.slow
def test_my_slow_function():
# ...
```
然后,我们可以通过使用 -m 命令行选项来只运行被标记为 slow 的测试函数:
```
pytest -m slow
```
除了使用预定义的 marker,我们还可以通过自定义 marker 来为测试函数打上我们自己的标签。例如,我们可以定义一个名为 my_marker 的 marker:
```python
import pytest
my_marker = pytest.mark.my_marker
@my_marker
def test_my_function():
# ...
@my_marker
def test_another_function():
# ...
```
然后,我们可以通过 -m 命令行选项来只执行被标记为 my_marker 的测试函数:
```
pytest -m my_marker
```
相关问题
pytest中的Mark
pytest中的Mark是一种标记机制,可以用于标记测试用例或测试用例集合,以便于在运行测试时选择性地执行或排除某些测试用例。Mark可以通过装饰器或pytest.ini文件进行添加,也可以通过命令行参数进行指定。
以下是一些使用Mark的例子:
1.使用装饰在测试用例上添加Mark:
```python
import pytest
@pytest.mark.smoke
def test_login():
# 测试用例代码
pass
@pytest.mark.regression
def test_register():
# 测试用例代码
pass
```
2.使用pytest.ini文件在测试用例上添加Mark:
```ini
[pytest]
markers =
smoke: 标记为冒烟测试
regression: 标记为回归测试
```
3.使用命令行参数指定Mark:
```bash
pytest -m smoke # 执行所有标记为smoke的测试用例
pytest -m "not regression" # 执行除了标记为regression的测试用例以外的所有测试用例
```
pytest中的参数全称
pytest中的参数全称是"pytest命令行选项"。这些选项可以在运行pytest时使用,用于控制测试的行为和配置。常见的pytest命令行选项包括:
- `--verbose`:显示详细的测试结果。
- `--quiet`:只显示测试结果的总结信息。
- `--tb=style`:设置traceback的显示风格,例如"short"、"long"、"line"等。
- `--maxfail=num`:指定最大允许失败的测试数量。
- `--junit-xml=path`:生成JUnit XML格式的测试报告。
- `--cov=path`:开启代码覆盖率报告,并指定报告文件的路径。
- `--pdb`:在测试失败时自动进入调试器。
- `--markers`:显示所有可用的标记(marker)。
这里只列举了一些常用的选项,pytest还有更多的命令行选项可供使用。你可以通过运行`pytest --help`命令来查看所有可用的选项及其说明。