【发布时间】:2021-04-03 20:03:47
【问题描述】:
我正在使用命令行参数,并且在不提供命令行参数的情况下同时使用 / 的东西,但是如果我不提供命令行参数,它突然开始失败。
在https://groups.google.com/g/robotframework-users/c/_5Usp-K4Dlw?pli=1 上,我读到在变量前添加一个空格并将其与'${ VAR}'==<value> 这样的值进行比较应该可以检查变量是否存在。
之前工作的code-sn-p是:
*** Test Cases ***
My test
[Documentation] test to check if the SUT reacts as expected
${is_test}= Evaluate '${ VAR}'=='test'
Log To Console ${is_test}
Run Keyword If ${is_test} Log To Console VAR == test
将代码更改为(已删除“[文档]”,因为它是从另一个测试中复制的):
*** Test Cases ***
My test
${is_test}= Evaluate '${ VAR}'=='test'
Log To Console ${is_test}
Run Keyword If ${is_test}
... Log To Console VAR == test
它突然开始失败:Variable '${ VAR}' not found. 错误。
改回原来的样子还是不行。
我不知道我在更改中做错了什么。
注意:我工作的公司使用 RobotFramework 版本 3.0.4(是的,我知道很古老)
【问题讨论】:
-
您可以将条件直接放入 if
Run Keyword If '${VAR}'=='test'。此外,如果您没有从命令行传递此变量并且您在***Variable***中没有它,那么它将不存在。之前它工作时你不是从命令行传递的吗? -
@BenceKaulics:当我第一次尝试没有设置任何
***Variable***并且没有在命令行上传递参数时,它确实起作用了。但是从您的评论中,我得出结论,它不应该那样工作;-) 再次感谢。 -
顺便说一句。我把它放在
Run Keyword If之外,因为在最终脚本中,我们有 2 条可能的路径:1 应该在 VAR==test 时采用,另一个如果评估为 False (所以我不得不把它放在Run Keyword Unless部分使用相同的条件检查)。 -
我从未听说过使用
${ VAR}的技巧。如果它起作用了,那很可能是偶然的。这当然不是记录在案的功能。
标签: robotframework