#robotframework
#robotframework
Вопрос:
Мне нужно установить список внутри тестового примера и использовать этот список в [SETUP], чтобы передать этот список скрипту python, как я могу этого добиться?
TEST-List
@{lst} Create List a b
@{tmp} Set Test Variable @{lst}
[Setup] Receive List ${tmp} ${another_var}
Когда я пытаюсь использовать приведенный выше код, я получаю эту ошибку:
Variable '{${tmp}' not found.
Ответ №1:
[Setup]
настройка используется для выполнения действий перед тестовым примером. Его цель — настроить состояние для вашего теста. Это означает, что это происходит (выполняется) перед тестовыми шагами, независимо от того, где вы его вводите.
В вашем случае [Setup] Receive List ${tmp} ${another_var}
выполняется первым, а ${tmp}
переменная еще не объявлена.
Решением может быть перемещение объявления ${tmp}
на уровень набора.
Комментарии:
1. Я забыл сказать, что я новичок в robot… но если этот вызов, изменение во всех тестовых примерах, вам нужно иметь несколько списков в области переменных, невозможно определить список типа [Setup] Receive List [a, b, c] и передать этот путь на сторону python
2. Я точно не знаю, чего вы пытаетесь достичь. Обычно есть способ, но иногда это зависит от того, как вы структурируете свои тесты.
Ответ №2:
В вашем примере код в [Setup]
выполняется перед любым другим кодом в тесте. Следовательно, @{lst}
и @{tmp}
не определены во время его выполнения.
Самое простое решение — создать локальное ключевое слово, которое выполняет все, что вам нужно в настройке, а затем вызвать это ключевое слово из [Setup]
.
Пример
*** Keywords ***
Initialize test
@{lst} Create List a b
@{tmp} Set Test Variable @{lst}
Receive List ${tmp} ${another_var}
*** Test Cases ***
TEST-List
[Setup] Initialize test
# ... rest of your test goes here ...