知识兔

pytest-skip详解

24
import pytest
import sys
environment='android' #设置系统变量为android

@pytest.mark.skipif(environment=="android",reason='android平台没有这个功能,只有ios下有')
#当environment为android时,跳过该用例
def test_add():
print("apple")


def test_add2():
print("android")

@pytest.mark.skipif(sys.platform=='win32',reason='不在win下运行')
#sys.platform获取当前系统,当系统为win系统当时候跳过该用例
@pytest.mark.skipif(sys.version_info<(3,6),reason='3.6以下不执行')
#sys.version_info获取python版本号,当python版本小于3.6时,不执行该用例
def test_add3():
print("windows")
print(sys.version_info)

def broken_fixture():
raise Exception('sorry,is broken')

@pytest.mark.xfail
def test_xfail():
print(broken_fixture())

通过pytest -v -s 文件名 执行该用例 -v表示运行的函数 -s表示打印内部日志
知识兔

pytest_skip.py::test_add s 25% ██▌ android        #通过日志可见,因为系统环境变量设置为了android,所以后边显示s,代表跳过

pytest_skip.py::test_add2 ✓ 50% █████ windows     #因为我的系统是macos,所以执行该用例
sys.version_info(major=3, minor=7, micro=0, releaselevel='final', serial=0)  #因为我的python为3.7,所以执行该用例

pytest_skip.py::test_add3 ✓ 75% ███████▌
pytest_skip.py::test_xfail x 100% ██████████

Results (0.10s):
2 passed
1 xfailed
1 skipped

计算机