Robotframework: невозможно установить переменную Suite для переменных Run Keyword, если передается как переменная
Я попытался сгенерировать уникальное имя для разных случаев и установить это уникальное имя как переменную 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}' не найдена.
3 ответа
Наконец, я мог найти решение в одном ключевом слове. Вот простой код.
Run Keyword If '${function}'=='Products' Run Keywords Generate Unique Name PL-RFT- ${CURDIR}\\fNameEdit.txt AND
... Set Suite Variable ${namePL} ${name}
Спасибо всем вашим мнениям.
Рассмотрим этот блок кода:
${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
заканчивается и, таким образом, до ${namePL}
был создан.
Оператор Run If допускает выполнение нескольких ключевых слов, однако установка переменных на основе значений, также установленных в том же контексте Run If, является настоящей проблемой. Мой совет - разделить генерацию идентификатора и повторное использование в двух разных утверждениях.