用python 2.7编写的自定义关键字:
@keyword("Update ${filename} with ${properties}")
def set_multiple_test_properties(self, filename, properties):
for each in values.split(","):
each = each.replace(" ", "")
key, value = each.split("=")
self.set_test_properties(filename, key, value)
当我们如下所示在一行中发送参数时,它按预期工作:
"Update sample.txt with "test.update=11,timeout=20,delay.seconds=10,maxUntouchedTime=10"
但是当我们使用新行修改上述行时(为了更好的可读性),它无效。
Update sample.txt with "test.update = 11,
timeout=20,
delay.seconds=10,
maxUntouchedTime=10"
对此有何疑问?
答案 0 :(得分:0)
我不确定它是否会起作用,但请尝试这样做
Update sample.txt with "test.update = 11,
... timeout=20,
... delay.seconds=10,
... maxUntouchedTime=10"
答案 1 :(得分:0)
你的方法不起作用,因为第二行被认为是对关键字的调用(称为"超时= 20,"),第三行被认为是另一个,依此类推。 3个点不起作用,因为它们是"细胞分离器" - 分隔符b / n参数。
如果您想要提高可读性,可以使用Catenate kw(它在Strings库中):
${props}= Catenate SEPARATOR=${SPACE}
... test.update = 11,
... timeout=20,
... delay.seconds=10,
... maxUntouchedTime=10
,然后使用该变量调用您的关键字:
Update sample.txt with "${props}"
btw,a)我认为装饰器中你的关键字声明没有双引号 - 即被称为^它们将被视为参数值的一部分,b)似乎有py方法中的错误 - 参数的名称是"属性"虽然itterator使用"值"和c)你可能想考虑使用命名的varargs(在python中使用** kwargs,在RF语法中使用$ {kwargs})(抱歉,offtopic,但不能&# 39;抵制:)