测试积点老人 发表于 2021-4-8 13:15:08

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

可变参数的形式会报错
def addlog(func):
    def wrapper(self,*args,**kwargs):
      print('装饰器开始')
      func(self,*args,**kwargs)
      print(args,kwargs)
      print('装饰器结束')
    return wrapper

class TestObj:
    data=[['aaa',11],['bbb',22]]
    @user1ize("name,age",data)
    @addlog
    def test_A(self,name,age):
      print('开始用例',name,age)
换成不可变参数是可以正常运行的
def addlog(func):
    def wrapper(self,name,age):
      print('装饰器开始')
      func(self,name,age)
      print(name,age)
      print('装饰器结束')
    return wrapper


class TestObj:
    data=[['aaa',11],['bbb',22]]
    @user3ize("name,age",data)
    @addlog
    def test_A(self,name,age):
      print('开始用例',name,age)
请问结合使用的话,装饰器里面的参数为什么一定要为不可变参数?

qqq911 发表于 2021-4-9 10:43:08

这个是规则

jingzizx 发表于 2021-4-9 14:29:04

使用方法?

bellas 发表于 2021-4-9 15:34:45

定义就是这样的?
页: [1]
查看完整版本: pytest 中 @pytest.mark.parametrize 和自定义装饰器结合使用的时候为什么参数一定...