我试图验证0< 4.3< 6,我尝试使用Robot框架进行评估,但我无法得到结果,因为我找不到任何方法将字符串转换为浮点数,然后我写了一个python类来实现这个,但是对于它显示传递的所有条件
我的python代码:
def should_be_x_than_y (number1, relation, number2, relation1, number3):
if relation =="<" and relation1 == "<":
print(relation)
print (relation1)
print (number1)
print (number2)
print (number3)
**return float(number1) < float(number2) < float(number3)**
if relation ==">" and relation1 == ">":
return float(number1) > float(number2) > float(number3)
if relation =="=>" and relation1 == "<=":
return float(number1) >= float(number2) <= float(number3)
if relation =="<=" and relation1 == "=>":
return float(number1) <= float(number2) >= float(number3)
if relation =="=":
return float(number1) == float(number2)
机器人代码:
should_be_x_than_y 0 < ${words[0]} < 3
${word[0]}
的值是4.3,所以理想情况下应该失败,但它没有
答案 0 :(得分:2)
原始问题可能是0
和6
不在$ {}?
这对我很有用
*** Variables ***
@{words} 4.8 7.8
*** Test Cases ***
Test1
[Tags] example
Run Keyword Unless ${0} < ${words[0]} < ${6} Fail
Test2
[Tags] example
Run Keyword Unless ${0} < ${words[1]} < ${6} Fail
希望有所帮助,请告诉我这不是你的问题!
==============================================================================
Basic
==============================================================================
Test1 | PASS |
------------------------------------------------------------------------------
Test2 | FAIL |
AssertionError
答案 1 :(得分:1)
在您的问题中,您声明Robot Framework无法将字符串转换为Float。这是Python开发的基础。但是,这是不正确的。在Variables上的机器人框架用户指南中,它指出:
变量语法可用于创建整数和 浮点数,如下例所示......
在BuiltIn Library中,Convert to Number
的关键字也明确表示支持浮点数
将给定项目转换为浮点数。如果是可选的 精度为正或零,返回的数字四舍五入为 小数位数。
这意味着您可以使用常规关键字轻松完成比较。
*** Variables ***
@{words} 4.7 7.8
*** Test Cases ***
TC
Should Be X Than Y 0 < ${words[0]} < 6
Run Keyword and Continue on Failure Should Be X Than Y 0 < ${words[1]} < 6
*** Keywords ***
Should Be X Than Y
[Arguments] ${expression}
Run Keyword If
... not(${expression})
... Fail Number does not match Expression pattern.
正如@Bryan Oakley强调的那样,使用Fail
生成失败而不是返回值非常重要。