pytest文档52-命令行参数--setup-show查看fixture的执行过程

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest文档52-命令行参数--setup-show查看fixture的执行过程相关的知识,希望对你有一定的参考价值。

前言

使用命令行运行 pytest 用例的时候,看不到 fixture 的执行过程.
如果我们想知道fixture的执行过程和先后顺序,可以加上 --setup-show 命令行参数,帮助查看 fixture 的执行过程.

–setup-show

案例参考test_s.py

# test_s.py
import pytest
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/


@pytest.fixture()
def login():
    print("前置操作:准备数据")
    yield
    print("后置操作:清理数据")


def test_01(login):
    a = "hello"
    b = "hello"
    assert a == b


def test_02(login):
    a = "hello"
    b = "hello world"
    assert a in b

命令行执行 pytest test_s.py

>pytest test_s.py
============================= test session starts =============================

collected 2 items

test_s.py ..                                                             [100%]

========================== 2 passed in 0.10 seconds ===========================

加上 --setup-show 命令行参数后执行

>pytest test_s.py --setup-show
============================= test session starts =============================
collected 2 items

test_s.py
SETUP    S base_url
SETUP    S _verify_url (fixtures used: base_url)
        SETUP    F __pytest_repeat_step_number
        SETUP    F login
        test_s.py::test_01 (fixtures used: __pytest_repeat_step_number, _verify_url, base_url, login).
        TEARDOWN F login
        TEARDOWN F __pytest_repeat_step_number
        SETUP    F __pytest_repeat_step_number
        SETUP    F login
        test_s.py::test_02 (fixtures used: __pytest_repeat_step_number, _verify_url, base_url, login).
        TEARDOWN F login
        TEARDOWN F __pytest_repeat_step_number
TEARDOWN S _verify_url
TEARDOWN S base_url

========================== 2 passed in 0.04 seconds ===========================

这样就可以方便查看用例调用了哪些fixture,上面用例里面只写了一个login
但是从回溯信息上看到还有几个是内置的fixture会自动调用:__pytest_repeat_step_number, _verify_url, base_url。

以上是关于pytest文档52-命令行参数--setup-show查看fixture的执行过程的主要内容,如果未能解决你的问题,请参考以下文章

pytest文档76 - 命令行中神奇的-o参数使用

pytest文档49-命令行参数--tb的使用

24-pytest-allure命令行参数

24-pytest-allure命令行参数

pytest文档50-命令行参数--durations统计用例运行时间

pytest文档40-pytest.ini配置用例查找规则(面试题)