【问题标题】:Arguments gone missing for robot-framework机器人框架缺少参数
【发布时间】:2011-12-15 00:10:50
【问题描述】:

以下内容因投诉删除目录需要 1 或 2 个参数而得到回报,而我没有给出任何参数。我使用的是 2.6.3,而 dcsLshLocation 是一个变量(并且在前面添加一个 x 不会改变错误)。我正在使用所有这些的 Java 版本。

*** Settings ***
| Documentation | http://jira.basistech.net:8080/browse/JEST-226
| Resource | src/main/resources/jug-shared-keywords.txt
| Force Tags | integration | 
| Suite Precondition | Run Keywords | 
|                    |   ...        | Validate SUT Installations |
|                    |   ...        | Launch Derby Server        | 
|                    |   ...        | Copy file ${jddInstallDir}/conf/jdd-conf-basic.xml to ${jddInstallDir}/conf/jdd-conf.xml
|                    |   ...        | Remove Directory  | ${dcsLshLocation} |
| Suite Teardown | Run Keywords | Shutdown Derby 
| Test Timeout | 20 minutes

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    最初编写此问题时,Run Keywords 只能运行不带参数的关键字。这不再是真的。来自文档:

    从 Robot Framework 2.7.6 开始,关键字也可以使用大写 AND 作为关键字之间的分隔符来运行。执行关键字,以便第一个参数是第一个关键字,并且在第一个 AND 是它的参数之前,将继续执行参数。第一个 AND 之后的第一个参数是第二个关键字,直到下一个 AND 的后续参数是它的参数。以此类推。

    因此问题中的代码可以这样表达:

    | Suite Precondition | Run Keywords | 
    |                    |   ...        | Validate SUT Installations
    |                    |   ...        | AND | Launch Derby Server
    |                    |   ...        | AND | Copy file ${jddInstallDir}/conf/jdd-conf-basic.xml to ${jddInstallDir}/conf/jdd-conf.xml
    |                    |   ...        | AND | Remove Directory  | ${dcsLshLocation}
    

    以下是问题的原始答案,其他人可能仍然觉得有用。它仍然适用于 2.7.6 之前的机器人框架版本。

    当您使用Run Keywords 时,您不能运行带参数的关键字。诚然,documentation 有点不清楚,但这就是它所说的:

    如果执行的关键字需要,则必须使用用户关键字 接受争论。

    应该说的是,当您使用Run Keywords 时,每个参数都是要运行的关键字的名称。这个关键字本身不能接受任何参数,因为机器人不知道一个关键字的参数在哪里结束,下一个关键字从哪里开始。

    请记住,... 仅表示上一行在下一行继续,所以虽然它看起来每一行都是带有参数的单独关键字,但事实并非如此。你的例子是一样的:

    | Suite Precondition | Run Keywords | 
    |                    |   ...        | Validate SUT Installations |
    |                    |   ...        | Launch Derby Server        | 
    |                    |   ...        | Copy file ${jddInstallDir}/conf/jdd-conf-basic.xml to ${jddInstallDir}/conf/jdd-conf.xml
    |                    |   ...        | Remove Directory  | 
    |                    |   ...        | ${dcsLshLocation} |
    

    【讨论】:

    • 还有其他方法可以将前置条件表示为普通关键字列表吗?
    • 为什么不写一个名为“套件前提条件”的新关键字并将其称为唯一的前提条件? O,r 编写您自己的“运行关键字”版本,它可以以某种方式区分关键字和关键字参数。
    • 是的,我知道这些选项是如何发挥作用的。谢谢。
    猜你喜欢
    • 2020-05-31
    • 2016-04-26
    • 2021-08-09
    • 2021-04-22
    • 2013-03-01
    • 2018-04-25
    • 1970-01-01
    • 2015-11-03
    • 2017-11-11
    相关资源
    最近更新 更多