前言

  • 在实际测试过程过,我们需要跳过部份用例,或用例没有达到相应的条件则不执行用例

skip

@pytest.mark.skip
  • 跳过执行测试用例,有可选参数reason
  • 跳过的原因,会在执行结果中打印
# -*- coding: utf-8 -*-
# @Author : 程序员一凡

import pytest

class Test():
    def test(self):
        print("执行的是testcase的用例")

@pytest.mark.skip(reason="没完成不执行")
class Testcase():
    def test01(self):
        print("执行的是test01里面的用例")

运行结果

test.py::Test::test 执行的是testcase的用例
PASSED
test.py::Testcase::test01 SKIPPED (没完成不执行)

skipif

  • 希望有条件地跳过某些测试用例
  • condition需要返回True才会跳过
@pytest.mark.skipif()
# -*- coding: utf-8 -*-
# @Author : 程序员一凡

import pytest

class Test():
    def test(self):
        print("执行的是testcase的用例")

@pytest.mark.skipif(condition=1<2, reason="条件成立,所以该用例跳过")
class Testcase():
    def test01(self):
        print("执行的是test01方法里面的用例")

运行结果

test.py::Test::test 执行的是testcase的用例
PASSED
test.py::Testcase::test01 SKIPPED (条件成立,所以该用例跳过)

xfail

  • 将该用例标记成xfail失败,并且该用例中的后续代码不会执行
@pytest.mark.xfail()
# -*- coding: utf-8 -*-
# @Author : 程序员一凡

import pytest
def test_1():
    print("执行测试用例1")

@pytest.mark.xfail(reason="该功能未完成")
def test_2():
    print("执行测试用例2")

运行结果

test.py::test_1 执行测试用例1
PASSED
test.py::test_2 执行测试用例2
XPASS (该功能未完成)
03-28 20:43