Pytest----如何设置fixture自动执行

DevOps技术社区 2022-08-28 02:50:03

目录

  • 一、fixture可以设置自动执行

一、fixture可以设置自动执行

在定义fixture函数的时候,通过将autouse设置为True即可,如下所示,虽然整个过程中都没有调用init_name这个fixture,但是通过最后执行的结果看,这个init_name的fixture明显是执行了的,这是因为在init_name这个fixture上面使用了@pytest.fixture(autouse=True),将autouse参数设置了True的原因

test_demo.py如下

import pytest

@pytest.fixture()
def get_name():
    print("\nin get_name fixture...")
    return []

@pytest.fixture(autouse=True)
def init_name(get_name):
    print("\nin init fixture...")
    get_name.append("张无忌")
    get_name.append("张三丰")

def test_func(get_name):
    assert "周芷若" in get_name

执行结果如下

$ pytest -s
========================================================================= test session starts ==========================================================================
platform win32 -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
rootdir: D:\src\blog\tests, configfile: pytest.ini
plugins: allure-pytest-2.9.43, caterpillar-pytest-0.0.2, hypothesis-6.31.6, forked-1.3.0, rerunfailures-10.1, xdist-2.3.0
collected 1 item                                                                                                                                                        

test_demo.py
in get_name fixture...

in init fixture...
F

=============================================================================== FAILURES ===============================================================================
______________________________________________________________________________ test_func _______________________________________________________________________________

get_name = ['张无忌', '张三丰']

    def test_func(get_name):
>       assert "周芷若" in get_name
E       AssertionError: assert '周芷若' in ['张无忌', '张三丰']

test_demo.py:15: AssertionError
======================================================================= short test summary info ========================================================================
FAILED test_demo.py::test_func - AssertionError: assert '周芷若' in ['张无忌', '张三丰']
========================================================================== 1 failed in 0.11s ===========================================================================

...全文
121 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

32

社区成员

发帖
与我相关
我的任务
社区描述
围绕测试开发、Devops、软件工程等方向,学习交流,共享技术新动态、新方向。求助工作中的问题,困惑等,互相交流,共同成长
软件工程测试工具devops 技术论坛(原bbs) 江苏省·南京市
社区管理员
  • redrose2100
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

1、社区话题和文章主要围绕DevOps技术栈

2、有广告需求请联系微信 Redrose2100

 

试试用AI创作助手写篇文章吧