Robotframework 如何使用Run关键字if计算变量?
我正在尝试更新变量${value}和${value\u count}:Robotframework 如何使用Run关键字if计算变量?,robotframework,Robotframework,我正在尝试更新变量${value}和${value\u count}: test with FOR ${value} evaluate 2 @{list} set variable 1 2 3 4 5 FOR ${i} IN @{list} ${type_value} evaluate type(${value}) log ${type_value}
test with FOR
${value} evaluate 2
@{list} set variable 1 2 3 4 5
FOR ${i} IN @{list}
${type_value} evaluate type(${value})
log ${type_value}
${value} run keyword if $i in $list evaluate ${value} - 1
log ${value}
END
第一个通过,但随后失败
another test
@{value} set variable 2 4
@{result} set variable 1 2 3 4 5
${list_length} get length ${result}
${value_count} get length ${value}
FOR ${i} IN @{result}
${type_value} evaluate type(${value_count})
log ${type_value}
log ${value_count}
${value_count}= run keyword if $i in $value evaluate ${value_count} - 1
log ${value_count}
exit for loop if $i in $value and $value_count == 0
${list_length} evaluate ${list_length} - 1
END
should not be equal as integers ${list_length} 0
我不确定测试用例的目标是什么,但在执行以下行时
${value_count}= run keyword if $i in $value evaluate ${value_count} - 1
如果条件为False,则变量将设置为None,因此当尝试从None中减去1时,您将得到一个错误。我在该行中添加了一个Else,因此如果条件为False,那么变量将保持相同的值
test with FOR
${value} evaluate 2
@{list} set variable 1 2 3 4 5
FOR ${i} IN @{list}
${type_value} evaluate type(${value})
log ${type_value}
${value} run keyword if $i in $list evaluate ${value} - 1
... ELSE set variable ${value}
log ${value}
END
another test
@{value} set variable 2 4
@{result} set variable 1 2 3 4 5
${list_length} get length ${result}
${value_count} get length ${value}
FOR ${i} IN @{result}
${type_value} evaluate type(${value_count})
log ${type_value}
log ${value_count}
${value_count}= run keyword if $i in $value evaluate ${value_count} - 1
... ELSE set variable ${value_count}
log ${value_count}
exit for loop if $i in $value and ${value_count} == 0
${list_length} evaluate ${list_length} - 1
END
should not be equal as integers ${list_length} 0