【pytest官方文档学习】覆盖全局变量的示例代码在8.2.x版本运行报错

我们经常会在conftest.py中定义一些fixture提供给测试方法使用,但是在有些测试中,我们用不上或者需要对其结果进行处理后再用,这时候,就需要我们对fixture进行覆盖或重写。

在学习pytest-8.2.x官方文档看到了它给出的覆盖全局fixture的示例如下:

python 复制代码
tests/
    conftest.py
        # content of tests/conftest.py
        import pytest

        @pytest.fixture
        def username():
            return 'username'

    test_something.py
        # content of tests/test_something.py
        def test_username(username):
            assert username == 'username'

    subfolder/
        conftest.py
            # content of tests/subfolder/conftest.py
            import pytest

            @pytest.fixture
            def username(username):
                return 'overridden-' + username

        test_something_else.py
            # content of tests/subfolder/test_something_else.py
            def test_username(username):
                assert username == 'overridden-username'

我们可以看到,在subfolder/conftest.py文件中重写的"username " fixture访问了tests/conftest.py 文件中的"username "。

这种用法官方文档中也给出了解释:"Note that the base or super fixture can be accessed from the overriding fixture easily - used in the example above."说明官方是也是支持这么用的。

但是当我在pycharm中运行的时候,却报错了:

百思不得其解的时候,在网上看到了这位博主的文章【pytest-fixture】十一、覆盖各个级别的fixture_fixture级别-CSDN博客,发现他的运行是成功的,仔细看了他的运行环境,发现pytest版本是6.2.5。莫非是pytest版本问题?

于是,我将环境也换成了他的版本,运行结果真的时PASSED。

这... 嗯...问题记录下来吧~~

相关推荐
xiangjiaodalishi12 分钟前
武汉玖叁鹿科技:我们把 GEO 服务做成了可以审计的交付工程
python·1024程序员节
zzu123zsw27 分钟前
为什么 Python 做 Agent 总在并发中崩溃?拆解 Blockcell 在 Rust 下的 Host-Cell 隔离与自愈状态机
开发语言·python·rust·大模型·ai agent
jiangliushi631 分钟前
GPT-6.1 Sol 免费用:Python 读文件报 ‘gbk‘ codec can‘t decode?加一个参数就好
python·编码·1024程序员节
餐赢计餐饮策划设计1 小时前
如何判断国潮养生设计是否适合自己?
python·1024程序员节
艾灸爱好者1 小时前
艾草精油专业制造商哪3点决定品质高低?
python·1024程序员节
weixin_440401691 小时前
大数据技术-人工智能编程题
大数据·人工智能·python·1024程序员节
“AI国潮设计-小江”2 小时前
AIGC实战:Python+SDXL批量生成英歌舞IP立牌,解锁猪猪蛋糕“反差萌”流量密码(附完整API源码)
开发语言·人工智能·python·prompt·aigc
成信吴彦祖2 小时前
当前专业的无人机RID侦测主站供应商主要有哪些
python·1024程序员节
编程的一拳超人2 小时前
【元宝搜索开发者征文大赛】四语实战:Java/Python/Go/Node.js 构建 AI 搜索应用全攻略
java·python·golang·node.js·agent
fanruitian3 小时前
python anaconda jupyter notebook
python