如何使用pytest的--setup-show参数追踪fixture执行细节?

2026-05-24 18:141阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计459个文字,预计阅读时间需要2分钟。

如何使用pytest的--setup-show参数追踪fixture执行细节?

使用 `--setup-show` 命令查看 fixture 的执行过程及顺序。在运行 pytest 用例时,若想查看 fixture 的执行步骤,可添加 `--setup-show` 参数,以获取帮助信息。

如何使用pytest的--setup-show参数追踪fixture执行细节?

--setup-show查看fixture的执行过程

前言

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

--setup-show

案例参考test_s.py

# test_s.py
import pytest

@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 ===========================

②命令行执行pytest --setup-show test_s.py

>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,上面用例里面只写了一个loginfixture函数。

但是从回溯信息上看到还有几个是内置的fixture会自动调用:__pytest_repeat_step_number, _verify_url, base_url。

--fixtures获取测试用例执行前可用的fixture

--markers获取测试用例中可用的标记(过滤出某些测试用例执行)

去期待陌生,去拥抱惊喜。

本文共计459个文字,预计阅读时间需要2分钟。

如何使用pytest的--setup-show参数追踪fixture执行细节?

使用 `--setup-show` 命令查看 fixture 的执行过程及顺序。在运行 pytest 用例时,若想查看 fixture 的执行步骤,可添加 `--setup-show` 参数,以获取帮助信息。

如何使用pytest的--setup-show参数追踪fixture执行细节?

--setup-show查看fixture的执行过程

前言

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

--setup-show

案例参考test_s.py

# test_s.py
import pytest

@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 ===========================

②命令行执行pytest --setup-show test_s.py

>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,上面用例里面只写了一个loginfixture函数。

但是从回溯信息上看到还有几个是内置的fixture会自动调用:__pytest_repeat_step_number, _verify_url, base_url。

--fixtures获取测试用例执行前可用的fixture

--markers获取测试用例中可用的标记(过滤出某些测试用例执行)

去期待陌生,去拥抱惊喜。