我的机器人测试中有一本字典,我想从调用测试的程序中填充。我有两个文件:robotstarter.py和printdictionary.robot。但是,当我运行脚本时,测试套件中的字典都是空的。我不确定这是否是python或RobotFramework相关问题。
robotstarter.py
import robot
test_dict = {'dict.a': '2', 'dict.b': '2', 'dict.c': '2', 'dict.d': '2', 'dict.e': '2', 'dict.f': '2'}
print(test_dict)
robot.run("printdictionary.robot", variable=test_dict)
printdictionary.robot
*** Variables ***
&{dict} a=${1} b=${1} c=${1} d=${1} e=${1} f=${1}
*** Test Cases ***
Test print the identity stuff
Log To Console \nDictionary:
Log To Console ${dict.a}
Log To Console ${dict.b}
Log To Console ${dict.c}
Log To Console ${dict.d}
Log To Console ${dict.e}
Log To Console ${dict.f}
答案 0 :(得分:0)
它的工作原理是将robotstarter.py中的字典替换为数组。
test_dict = {'dict.a': '2', 'dict.b': '2', 'dict.c': '2', 'dict.d': '2', 'dict.e': '2', 'dict.f': '2'}
变为:
test_dict = {'dict.a:2', 'dict.b:2', 'dict.c:2', 'dict.d:2', 'dict.e:2', 'dict.f:2'}
答案 1 :(得分:0)
不支持通过命令行参数变量传递字典。 documentation on command line variables明确指出只支持标量变量。
...只有标量变量可以使用这种语法设置,他们可以 只获取字符串值。 ...
如果要传递任何类型的层次结构,则必须通过变量文件传递。这可以是对YAML文件的引用,也可以是声明字典的Python文件,或者是返回所需变量的Python方法/类。可以在documentation on variable files。
中找到示例