我尝试为不同的案例生成唯一名称,并使用最少的关键字将该唯一名称设置为Suite变量,但无法执行此操作, 有人可以帮我解决这个问题,这是我的代码..
*** Test Cases ***
TC100_Unique Variable Checking
Generate Unique Name for Objects-loop Product Line
Generate Unique Name for Objects-loop Models
Generate Unique Name for Objects-loop Portfolio
*** Keywords ***
Generate Unique Name for Objects-loop
[Arguments] ${function}
Set Variable ${function}
${namePL}= Run Keyword If '${function}'=='Product Line' Run Keywords Generate Unique Name PL-RFT- ${CURDIR}\\fNameEdit.txt
... Set Suite Variable ${namePL}
${nameMOD}= Run Keyword If '${function}'=='Models' Run Keywords Generate Unique Name MOD-RFT- ${CURDIR}\\modNameEdit.txt
... Set Suite Variable ${nameMOD}
${namePF} Run Keyword If '${function}'=='Portfolio' Run Keywords Generate Unique Name PF-RFT- ${CURDIR}\\pfNameEdit.txt
... Set Suite Variable ${namePF}
Generate Unique Name
[Arguments] ${suffix} ${filepath}
${name}= Get String Plus Number ${suffix} ${filepath}
Set Test Variable ${name}
Write Unique Number ${filepath}
[Return] ${name}
错误:
找不到变量'$ {namePL}'。
答案 0 :(得分:1)
最后,我可以在一个关键字中发现一个解决方案。这是简单的代码。
Run Keyword If '${function}'=='Products' Run Keywords Generate Unique Name PL-RFT- ${CURDIR}\\fNameEdit.txt AND
... Set Suite Variable ${namePL} ${name}
感谢您的所有意见。
答案 1 :(得分:0)
Run If语句允许执行多个关键字,但是,根据在同一Run If上下文中设置的值设置变量是这里的真正问题。我的建议是将ID的生成和重用分成两个不同的语句。
答案 2 :(得分:0)
考虑这段代码:
filter :user_exclude, :as => :select, :collection => proc { User.all.map { |i| [ i.to_s, i.id ] } }
在其他关键字已经运行之后,这将创建一个名为${namePL}= Run Keyword If '${function}'=='Product Line' Run Keywords Generate Unique Name PL-RFT- ${CURDIR}\\fNameEdit.txt
... Set Suite Variable ${namePL}
的变量。但是,您尝试将${namePL}
作为其中一个关键字进行调用,但在 Set Suite Variable
完成之前将其称为,因此在Run keyword if
之前创建