Путь до библиотек и ресурсов Robot Framework
Введение
Из этой статьи вы сможете узнать о том как явно указывать путь до ресурсов и внешних
Python
библиотек в Robot Framework.
Это будет особенно полезно тем, кто пишет
свои библиотеки
для робота и/или использует сложную структуру с большим количеством вложений.
Рекомендую сперва познакомиться со статьями про
архитектуру тестов
и про
подключение внешних Python библиотек
В примере из статьи «Подключение внешних Python библиотек» библиотеки лежали в директории libraries а тесты в tests
ext_py_lib/ |-- browser |-- libraries | `-- unstable_url.py `-- tests `-- test_title.robot
Поэтому импорт библиотеки выглядел следующим оригинальным образом
Library ../libraries/unstable_url.py
Если в директории tests появятся поддиректории - оттуда импорт будте выглядеть как
Library ../../libraries/unstable_url.py
или даже так
Library ../../../libraries/unstable_url.py
Чтобы не делать относительный импорт можно воспользоваться одним из описанных ниже способов
--pythonpath
С помощью опции --pythonpath можно временно добавить путь до библиотек в
PYTHONPATH
Начиная с этого примера будем указывать библиотеки без .py
Library unstable_url
robot --pythonpath /c/Users/Andrei/robot/ext_py_lib/libraries test_unstable_title.robot
--argumentfile
Чтобы не вводить путь вручную, можно сохранить его в так называемый argumentfile
Создадим файл
all_arguments.robot
и добавим туда следующий код
--pythonpath /c/Users/Andrei/robot/ext_py_lib/libraries test_unstable_title.robot
Чтобы использовать этот файл воспользуемся опцией --argumentfile
robot --argumentfile all_arguments.robot test_unstable_title.robot
Dockerfile
Если ваше окружение создается с использованием
Docker
,
то путь до библиотек можно прописать в
Dockerfile
Пример, который работает в одном из моих проектов:
… ENV TEST_DIR=/opt ENV PYTHON_DIR=/user/local/bin/python ENV ROBOT_RESOURCES=/opt/robot/src/resources ENV ROBOT_LIBRARIES=/opt/robot/src/libraries ENV PYTHONPATH=$TEST_DIR:$PYTHON_DIR:$ROBOT_RESOURCES:$ROBOT_LIBRARIES …
Автор статьи: Андрей Олегович
Robot Framework | |
Архитектура | |
Логи | |
__init__.robot | |
Подключение своих .py библиотек | |
Путь до библиотек и ресурсов | |
Keyword как декоратор | |
Template | |
Пример с pywinauto |