码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Pytest在一个函数中使用相同的fixture两次


    我用Dummy类来实现fixture功能。那就从你的测试中打出来。提供明确的方法名称,以便更好地理解您的测试在做什么。 

    1. import pytest
    2. @pytest.fixture
    3. def login():
    4. class Dummy:
    5. def make_user(self):
    6. return 'New user name'
    7. return Dummy()
    8. def test_something(login):
    9. a = login.make_user()
    10. b = login.make_user()
    11. assert a == b

    诀窍是利用标记参数化使用“间接”开关,因此:

    1. @pytest.fixture
    2. def data_repeated(request):
    3. return [deepcopy({'a': 1, 'b': 2}) for _ in range(request.param)]
    4. @pytest.mark.parametrize('data_repeated', [3], indirect=['data_repeated'])
    5. def test(data_repeated):
    6. assert data_repeated == [
    7. {'a': 1, 'b': 2},
    8. {'a': 1, 'b': 2},
    9. {'a': 1, 'b': 2}]

    pytest.mark.parametrize里面indirect参数详细解释
    @pytest.mark.parametrize里面indirect参数,默认是False
    False: 就是parametrize里面argnames 参数当作一个普通的变量,不会去找变量对应函数的名的方法
    True: 就是parametrize里面argnames 参数当作函数执行,它会去找对应的函数,去执行

    另一种方法是复制fixture函数。这既简单又正确地处理了参数化fixture,并使用两个fixture的所有参数组合调用test函数。下面的示例代码引发了9个断言:

    1. import pytest
    2. @pytest.fixture(params=[0, 1, 2])
    3. def first(request):
    4. return request.param
    5. second = first
    6. def test_double_fixture(first, second):
    7. assert False, '{} {}'.format(first, second)
  • 相关阅读:
    Stream流、FiLe和IO流、
    最长公共子串LCS
    30天Python入门(第二十三天:深入了解Python中的虚拟环境)
    SpringCloud Alibaba核心组件Nacos【服务多级存储模型&配置集群】第2章
    docker搭建jenkins
    企业电子招投标采购系统源码之电子招投标的组成
    mysql面试通关宝典,你看你知道多少
    飞控姿态解算算法解析
    LeetCode75——Day2
    java毕业设计商超零售送货到家购物系统源码+lw文档+mybatis+系统+mysql数据库+调试
  • 原文地址:https://blog.csdn.net/m0_72557783/article/details/128188335
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号