pytest使用存档

写在前面

文档中一部分摘抄了pytest中文文档和百度的搜索结果,记录下来方便自己以后查阅。

参数选项

-s

允许运行的时候打印输出(print)

pytest -s

--collect-only

Pytest --collect-only

-k

运行所有包含关键词的测试

pytest -k "keyword"

-m

运行指定标签的用例,多个标签以逗号间隔

设置标签:

@pytest.mark.mark1

def test_01_testcase()

pytet -m mark1, 即可运行有该标签的test_01_testcase用例

-x

运行失败时停止测试执行

pytest -x

--tb=no

不打印报错信息

--maxfail=num

规定最大失败次数,如果超过失败次数则停止测试

pytest --maxfail=3

-v

pytest -v

执行当前路径下的测试用例并显示详细信息

--lf

运行结束后会运行本次失败的用例

--ff

运行结束后如有失败的用例,重新执行所有用例

日志

pytest默认捕获WARNING或以上级别的日志并在测试结束后输出

如果要格式化日志和时间:

pytest ‐‐log‐format="%(asctime)s %(levelname)s %(message)s" ‐‐log‐date‐format="%Y‐%m‐%d %H:%M:%S"

也可在pytest.ini中设置:

 [pytest]
 log_format = %(asctime)s %(levelname)s %(message)s
 log_date_format = %Y‐%m‐%d %H:%M:%S

API

pytest.approx

approx(expected, rel=None, abs=None, nan_ok=False)判断两个或两组数字在允许范围内是否相等

pytest.fail

fail(msg="", pytrace=True)

msg: 显示给用户的失败消息

pytrace: 如果设置为False,则使用msg作为完整的失败信息而不显示traceback

skip

跳过某个测试

@pytest.mark.skip(reason="跳过原因")

skipif

有条件的跳过某个测试

@pytest.mark.skipif(python表达式,跳过条件)

xfail

意料之中的失败,如果用例执行成功,测试结果为失败

@pytest.mark.xfail(strict=True)

raises

@pytest.mark.xfail(raises=Error)
如测试失败,raise指定Error

你可能感兴趣的:(pytest使用存档)