51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3555|回复: 3
打印 上一主题 下一主题

pytest 中 @pytest.mark.parametrize 和自定义装饰器结合使用的时候为什么参数一定...

[复制链接]
  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 406 天

    连续签到: 3 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2021-4-8 13:15:08 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    可变参数的形式会报错
    1. def addlog(func):
    2.     def wrapper(self,*args,**kwargs):
    3.         print('装饰器开始')
    4.         func(self,*args,**kwargs)
    5.         print(args,kwargs)
    6.         print('装饰器结束')
    7.     return wrapper

    8. class TestObj:
    9.     data=[['aaa',11],['bbb',22]]
    10.     @user1ize("name,age",data)
    11.     @addlog
    12.     def test_A(self,name,age):
    13.         print('开始用例',name,age)
    复制代码

    换成不可变参数是可以正常运行的
    1. def addlog(func):
    2.     def wrapper(self,name,age):
    3.         print('装饰器开始')
    4.         func(self,name,age)
    5.         print(name,age)
    6.         print('装饰器结束')
    7.     return wrapper


    8. class TestObj:
    9.     data=[['aaa',11],['bbb',22]]
    10.     @user3ize("name,age",data)
    11.     @addlog
    12.     def test_A(self,name,age):
    13.         print('开始用例',name,age)
    复制代码

    请问结合使用的话,装饰器里面的参数为什么一定要为不可变参数?

    附件: 您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-6 03:50 , Processed in 0.062729 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表