机器人框架的参数丢失了

bma*_*ies 1 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
Run Code Online (Sandbox Code Playgroud)

Bry*_*ley 5

在最初编写此问题时,运行关键字只能运行不带参数的关键字.那不再是真的.从文档:

从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}
Run Code Online (Sandbox Code Playgroud)

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

使用时Run Keywords,无法运行带参数的关键字.不可否认,文档有点不清楚,但这就是它所说的:

如果执行的关键字需要参数,则必须使用用户关键字.

它应该说的是,当你使用时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} |
Run Code Online (Sandbox Code Playgroud)