前言使用命令行运行 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。
课程预告:第五期课程预计10月份开学!
2020年第四期《python接口自动化+测试开发》课程,7月4号开学(火热报名中
|