机器人框架的参数丢失了

时间:2011-10-25 14:29:18

标签: robotframework

以下内容有一个投诉,即删除目录需要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

1 个答案:

答案 0 :(得分:5)

最初编写此问题时,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} |