前言
- 在实际测试过程过,我们需要跳过部份用例,或用例没有达到相应的条件则不执行用例
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 (该功能未完成)