在机器人框架中使用命名参数

时间:2013-03-13 13:02:58

标签: python robotframework named-parameters

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

|  | 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')

如何传递我的命名参数?

1 个答案:

答案 0 :(得分: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