Робот: установка и использование локального списка в тестовых примерах

#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 ...