0

我想将一组命名变量传递给一个关键字:像这样:

|  | Bypass | environment=${SystemUnderTest} | device=android |

关键字在python中定义如下:

def Bypass(**kwargs):
    print "kwargs", kwargs

这将失败并显示以下错误消息:

关键字“agents.Bypass”预期 0 个参数,得到...

但是如果我稍微改变关键字定义,就像这样

def Bypass(*args):
    print "args", args

测试有效,我在我的日志中得到了这个:

INFO args (u'environment=staging', u'device=android')

我怎样才能传入我的命名参数?

4

1 回答 1

2

Afaik 这不是您可以从关键字中做的事情。如果我需要这种灵活的东西,我的解决方案就是:

def bypass(kwargs):
    print "kwargs", kwargs

|  | ${kwargs}= | Evaluate | dict(environment=${SystemUnderTest}, device=android)
|  | Bypass | ${kwargs}

或者,

def bypass(*args):
    kwargs = {}
    while args:
        kwargs[args.pop(-2)] = args.pop()
    print "kwargs", kwargs

|  | Bypass | environment | ${SystemUnderTest} | device | android
于 2013-03-14T08:09:07.780 回答