- Pytest教程
- Pytest - 主页
- Pytest - 简介
- Pytest - 环境设置
- 识别测试文件和函数
- Pytest - 从基本测试开始
- Pytest - 文件执行
- 执行测试套件的子集
- 测试名称的子字符串匹配
- Pytest - 对测试进行分组
- Pytest - 装置
- Pytest-Conftest.py
- Pytest - 参数化测试
- Pytest - Xfail/跳过测试
- N 次测试失败后停止测试套件
- Pytest - 并行运行测试
- XML 格式的测试执行结果
- Pytest - 总结
- Pytest - 结论
- Pytest 有用的资源
- Pytest - 快速指南
- Pytest - 有用的资源
- Pytest - 讨论
Pytest - 对测试进行分组
在本章中,我们将学习如何使用标记对测试进行分组。
Pytest 允许我们在测试函数上使用标记。标记用于设置测试功能的各种特征/属性。Pytest 提供了许多内置标记,例如 xfail、skip 和 parametrize。除此之外,用户还可以创建自己的标记名称。使用下面给出的语法将标记应用于测试 -
@pytest.mark.<markername>
要使用标记,我们必须在测试文件中导入 pytest模块。我们可以为测试定义我们自己的标记名称,并运行具有这些标记名称的测试。
要运行标记的测试,我们可以使用以下语法 -
pytest -m <markername> -v
-m <markername> 表示要执行的测试的标记名称。
使用以下代码更新我们的测试文件test_compare.py和test_square.py 。我们定义了 3 个标记——伟大、方形、其他。
测试比较.py
import pytest @pytest.mark.great def test_greater(): num = 100 assert num > 100 @pytest.mark.great def test_greater_equal(): num = 100 assert num >= 100 @pytest.mark.others def test_less(): num = 100 assert num < 200
测试方.py
import pytest import math @pytest.mark.square def test_sqrt(): num = 25 assert math.sqrt(num) == 5 @pytest.mark.square def testsquare(): num = 7 assert 7*7 == 40 @pytest.mark.others def test_equality(): assert 10 == 11
现在要运行标记为“其他”的测试,请运行以下命令 -
pytest -m others -v
请参阅下面的结果。它运行了标记为“其他”的2 个测试。
test_compare.py::test_less PASSED test_square.py::test_equality FAILED ============================================== FAILURES ============================================== ___________________________________________ test_equality ____________________________________________ @pytest.mark.others def test_equality(): > assert 10 == 11 E assert 10 == 11 test_square.py:16: AssertionError ========================== 1 failed, 1 passed, 4 deselected in 0.08 seconds ==========================
同样,我们也可以使用其他标记进行测试 - 太棒了,比较一下