Pytest 分组测试
在本章中,我们将学习如何使用标记来分组测试。
Pytest允许我们在测试函数上使用标记。标记用于为测试函数设置各种功能/属性。Pytest提供了许多内置的标记,如xfail、skip和parametrize。除此之外,用户还可以创建自己的标记名称。使用以下语法将标记应用于测试:
@pytest.mark.<markername>
要使用标记,我们必须在测试文件中导入pytest模块。 我们可以为测试定义自己的标记名称,并运行具有这些标记名称的测试。
要运行标记的测试,我们可以使用以下语法−
pytest -m <markername> -v
-m <markername>
代表要执行的测试用例的标记名称。
更新我们的测试文件 test_compare.py 和 test_square.py ,使用以下代码。我们定义了3个标记 great, square, others 。
test_compare.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
test_square.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
现在执行标记为 others 的测试,请运行以下命令:
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
==========================
同样,我们也可以运行其他标记的测试
Pytest教程目录索引
- Pytest 教程
- Pytest 简介
- Pytest 环境搭建
- Pytest 标识测试文件和测试函数
- Pytest 着手编写基本测试
- Pytest 文件执行
- Pytest 执行一部分测试套件
- Pytest 测试名称的子字符串匹配
- Pytest 分组测试
- Pytest fixture
- Pytest Conftest.py
- Pytest 参数化测试
- Pytest 选择xfail测试或跳过测试
- Pytest 在N个测试失败后停止测试套件
- Pytest 并行运行测试
- Pytest 以XML格式执行测试的结果
- Pytest 总结