Pytest - Xfail/Skip 测试



在本章中,我们将学习 Pytest 中的 Skip 和 Xfail 测试。

现在,考虑以下情况 −

  • 由于某些原因,测试在一段时间内不再相关。
  • 正在实现一个新功能,我们已经为该功能添加了测试。

在这些情况下,我们可以选择 xfail 测试或跳过测试。

Pytest 将执行 xfail 测试,但不会将它视为已失败或已通过的测试的一部分。即使测试失败,也不会打印这些测试的详细信息(请记住,pytest 通常会打印已失败测试的详细信息)。我们可使用以下标记来 xfail 测试 −

@pytest.mark.xfail

跳过测试意味着不执行该测试。我们可使用以下标记来跳过测试 −

@pytest.mark.skip

稍后,当测试变得相关时,我们可以移除这些标记。

编辑我们已经包含 xfail 和 skip 标记的 test_compare.py

import pytest
@pytest.mark.xfail
@pytest.mark.great
def test_greater():
   num = 100
   assert num > 100

@pytest.mark.xfail
@pytest.mark.great
def test_greater_equal():
   num = 100
   assert num >= 100

@pytest.mark.skip
@pytest.mark.others
def test_less():
   num = 100
   assert num < 200

使用以下命令执行测试 −

pytest test_compare.py -v

执行后,上述命令将生成以下结果 −

test_compare.py::test_greater xfail
test_compare.py::test_greater_equal XPASS
test_compare.py::test_less SKIPPED
============================ 1 skipped, 1 xfailed, 1 xpassed in 0.06 seconds
============================
广告