欢迎访问宙启技术站
智能推送

如何使用pytest.markskip()为测试用例设置跳过标记

发布时间:2023-12-28 08:36:43

pytest.mark.skip()是pytest提供的一个装饰器,可以用来为测试用例设置跳过标记。当用例被设置为跳过标记后,pytest将不会执行该用例。

下面是使用pytest.mark.skip()的一个例子:

假设我们有一个函数add(a, b),用来实现两个数的相加功能。我们希望对这个函数进行测试,但是在某些情况下,我们希望跳过一些用例。

首先,我们需要安装pytest库(如果还没有安装),可以使用以下命令来安装:

pip install pytest

接下来,我们创建一个名为test_calculator.py的测试文件,并写入以下内容:

import pytest

def add(a, b):

    return a + b

@pytest.mark.skip(reason="跳过这个测试用例")

def test_add():

    result = add(2, 3)

    assert result == 5

def test_add_skip():

    pytest.skip("跳过这个测试用例")

def test_add_other():

    result = add(5, 5)

    assert result == 10

在这个例子中,我们定义了一个add()函数,用来实现两个数的相加功能。接下来,我们定义了三个测试用例:

1. test_add()函数在用例上方使用了@pytest.mark.skip()装饰器,并使用了reason参数来指明跳过的原因。这个用例将被跳过执行。

2. test_add_skip()函数使用了pytest.skip()来手动跳过这个用例。

3. test_add_other()是一个正常的测试用例,不需要跳过。

现在,我们可以在命令行中运行这个测试文件,使用以下命令:

pytest test_calculator.py

输出结果应该是:

=================================== test session starts ===================================

collected 3 items

test_calculator.py ss.                                                               [100%]

========================================= warnings summary =========================================

None

  test_calculator.py:6

    SKIPPED [1] 跳过这个测试用例

================================== 2 passed, 1 skipped in 0.01 seconds ===========================

我们可以看到test_add()和test_add_skip()这两个用例被跳过,而test_add_other()通过了测试。

在这个例子中,我们演示了如何使用pytest.mark.skip()来标记测试用例跳过,并使用了不同的方式来跳过用例的执行。

总结一下,使用pytest.mark.skip()可以为测试用例设置跳过标记,让pytest在执行测试时跳过这些用例。