Python集的Robot框架实现
当我编写Robot框架测试时,我错过了集合。 我试着像这样模仿我需要的东西:Python集的Robot框架实现,python,robotframework,Python,Robotframework,当我编写Robot框架测试时,我错过了集合。 我试着像这样模仿我需要的东西: Create Set [arguments] @{elements} ${set}= Evaluate {e for e in @{elements}} [return] ${set} Sets Should Be Equal [arguments] ${a} ${b} ${equal} Evaluate set(@{a}) ==
Create Set
[arguments] @{elements}
${set}= Evaluate {e for e in @{elements}}
[return] ${set}
Sets Should Be Equal
[arguments] ${a} ${b}
${equal} Evaluate set(@{a}) == set(@{b})
Should Be True ${equal}
Append to Set
[arguments] ${set} ${new}
Evaluate ${set}.add(${new})
看起来,前两个关键词很好
附加到集合
不起作用,${new}
从未添加到集合中。我猜关键字正在处理一个副本,由于set.add
返回None
,因此该副本被丢弃而没有任何效果
我试图从关键字返回${set}
,并保存关键字调用的结果,但没有效果
robot-log.html对于Create Set
(工作)而言如下所示:
对于附加到Set
(不工作)来说,如下所示:
我可以修改作为参数传递的集合吗
另一个问题是
Append to Set
需要引用新参数,而Create Set
不需要引用新参数。对于这两个问题,解决方案是在变量名周围省略{
,}
字符
Append to Set
[arguments] ${set} ${new}
Evaluate $set.add($new)
从关键字的文档:
像${variable}这样使用的变量在计算之前在表达式中被替换。变量也可以在求值命名空间中使用,并且可以使用特殊的$variable语法进行访问,如中所述
从:
使用变量
当使用普通${variable}在表达式中使用变量时
语法,则在计算表达式之前替换其值这个
表示表达式中使用的值将是字符串
表示变量值,而不是变量值本身。
对于数字和其他具有
可以直接求值但使用其他
对象的行为取决于字符串表示形式。Most
重要的是,字符串必须始终被引用,如果它们可以包含
换行符必须是三重引号
示例:
Should Be True ${rc} < 10 Return code greater than 10
Run Keyword If '${status}' == 'PASS' Log Passed
Run Keyword If 'FAIL' in '''${output}''' Log Output contains FAIL
应为True${rc}<10返回大于10的代码
如果通过了“${status}”==“PASS”日志,则运行关键字
如果“${output}”中的“FAIL”日志输出包含FAIL,则运行关键字
评估中还提供了实际变量值
命名空间。可以使用特殊变量语法访问它们,而无需
大括号像$variable。这些变量永远不应该被忽略
引用
@高蒂尔:你试过了吗?