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