<4>pytest:用例执行

目录:测试自动化学习 - pytest
说明:本篇博客基于pytest 6.2.5



用例标记

  1. 添加标签
    标记:装饰器@pytest.mark.标记名

  2. 添加sikp标记
    装饰器跳过:装饰器@pytest.mark.skip(reason="跳过说明")
    代码跳过:代码中添加pytest.skip("跳过说明")
    装饰器条件跳过:装饰器@pytest.mark.skipif(跳过条件,reason= "跳过说明")

  3. 添加fail标记
    xfail提示:装饰器@pytest.mark.xfail(reason="失败说明"),通过则返回xpass,失败返回xfail
    跳过且直接fail:代码中添加pytest.fail("失败说明")


pytest终端命令执行

选择用例

执行所有用例:pytest 包名/模块名
执行某个类用例:pytest 文件名.py::类名
执行某个方法用例:pytest 文件名.py::类名::方法名
执行某个函数用例:pytest 文件名.py::函数名

执行参数

查看帮助文档:pytest --help
打印执行详情:pytest 用例 -v
打印执行略情:pytest 用例 -q
打印输出日志:pytest 用例 -s
查看用例集:pytest --collect-only
执行失败,停止执行:pytest 用例 -x
失败上限,停止执行:pytest 用例 --maxfail=num
执行标记用例:pytest 用例 -m 标记名
执行关键字用例:pytest 用例 -k 关键字

重新运行失败用例:--lf(--last-failed)
先运行失败用例再运行其他用例:--ff(--failed-first)


python -m pytest命令执行

备注:了解即可

python -m pytest test_run.py

python main执行

备注:可在main中添加pytest命令

import pytest


def test_case():
    assert 1 == 1


if __name__ == '__main__':
    # 1.执行所有用例
    pytest.main()
    # 2.执行特定用例
    # pytest.main(["test_run.py::test_case"])
    # pytest.main("./")
    # 3.其他参数
    # pytest.main(["test_run.py", "-vs"])
    # pytest.main(["test_run.py", "-vs", "-k", "case"])

注意:以main函数方式在pycharm中执行时,py文件不能以test_xx或xx_test命名
原因:文件使用了pytest命名,pycharm会自动转换为pytest的运行方式,自动搜索用例进行运行,而不再运行pytest.main()
例:如图pytest.main()设置是只运行单条用例,实际是全部运行了

posted @ 2021-12-06 17:30  漓白  阅读(131)  评论(0编辑  收藏  举报