PyCharm и Robot Framework
Введение | |
.robot файлы | |
Интерпретатор Python | |
Установка Robot Framework | |
Запуск простого теста | |
Edit Configurations… | |
Запуск тестов с библиотеками | |
Запуск тестов с опциями | |
Working directory | |
Похожие статьи |
Введение
Из этой статьи вы можете узнать о том как запускать тесты, написанные на Robot Framework,
в
PyCharm
.
Сперва будет продемонстрирован выбор
интерпретатора Python
,
затем
редактирование конфигурации
Также будет рассмотрена поддержка синтаксиса и импортов Robot Framework в PyCharm.
Поддержка .robot файлов
Чтобы синтаксис .robot файлов подсвечивался и можно было проваливаться глубже в код раньше нужно было установить
плагин Intellibot или Intellibot patched for Selenium
Они делали хорошую подсветку синтаксиса, но не позволяли проваливаться в источники ключевых слов или питоновские
библиотеки.
Современным решением этих проблем является плагин Hyper RobotFramework Support

Плагин
Поддержка .resource файлов
Если нужна поддержка .resource файлов PyCharm предлагал установить
Robot Framework Language Server. Но с появлением Hyper, эта необходимость отпала.
Language Server нужно было настраивать сразу после установки


Интерпретатор Python
Если вы пользуетесь окружением, которое автоматически создается PyCharm - продолжайте работать с ним.
Если вы предпочитаете создавать своё
виртуальное окружение для Python
-
сделайте это так как вы привыкли.
В этом примере окружение создано с помощью
venv
python -m venv venv
Если интерпретатор ещё не выбран:
В правом нижнем углу окна
PyCharm
нажмите
Add New Interpreter → Add Local Interpreter…
Выберите Existing в поле Environment и укажите путь до только что созданного виртуального окружения
C:\Users\Andrei\robot\venv\Scripts\python.exe
Если интерпретатор ещё не выбран:
Нажмите на правый нижний угол окна
PyCharm

https://testsetup.ru
Нажмите Add New Interpreter

https://testsetup.ru
Нажмите Add Local Interpreter…

https://testsetup.ru
Выберите интерпретатор из выпадающего списка, либо нажмите …

https://testsetup.ru
Укажите путь до python.exe из вашего виртуального окружения

https://testsetup.ru
Название интерпретатора должно появиться в правом нижнем углу

https://testsetup.ru
Установка Robot Framework
После того как
интерпретатор выбран
, убедитесь, что в нём установлен сам Robot Framework.
Если робот не установлен - установите его либо командой
python -m pip install robotframework
Либо через настройки интерпретатора:
Перейдите в настройки интерпретатора либо через нижний правый угол, либо через
Settings → Project → Python Interpreter
Нажмите +

https://testsetup.ru
В окно поиска введите robotframework
Нажмите Install Package

https://testsetup.ru
Нажмите Close

https://testsetup.ru
robotframework должен появиться в списке установленных пакетов

https://testsetup.ru
Запуск простого теста
Тесты можно запустить в терминале PyCharm выполнив команду
python -m robot my_test.robot
Под простым тестом будем понимать тест, который не импортирует внешние ресурсы и библиотеки. То есть не нуждается в
манипуляциях с
системным путём
.
Чтобы запускать тесты с помощью SHIFT + F10 или кнопкой - нужно отредактировать конфигурацию запуска файла
Edit Configurations…
Если конфигурация не была настроена она будет отображаться как Current File
Нажмите на название конфигурации, например, Current File

https://testsetup.ru
Выберите Edit Configurations…

https://testsetup.ru
Нажмите +

https://testsetup.ru
Выберите в списке Robot

https://testsetup.ru
Задайте имя для конфигурации и выберите нужный интерпретатор

https://testsetup.ru
В поле script нажмите на поиск файла

https://testsetup.ru
Укажите путь до robot.exe из вашего виртуального окружения
C:\Users\Andrei\robot\venv\Scripts\robot.exe
Либо укажите путь до run.py
C:/Users/Andrei/robot/venv/Lib/site-packages/robot/run.py

https://testsetup.ru
В Script parameters укажите файл до теста и нажмите OK
Working directory пока оставим пустой, о ней поговорим
здесь

https://testsetup.ru
Название конфигурации должно появится в верхней панели окна PyCharm, там, где раньше
было Current File
Теперь, если тест не импортирует внешних библиотек, его можно запустить одним нажатием на кнопку

https://testsetup.ru
Ещё один пример настройки конфигурации:
Откройте нужный .robot файл и рядом с кнопкой запуска выберите
Edit Configuration …
В PyCharm Community Edition я использую следующие настройки
- Module name: robot.run - к сожаленю забыл почему здесь robot.run
- Script parameters: -v browser:chrome --test "*" C:/AutoTest/project/tests/robot/tests/demo.robot
-
Environment:
-
Environment variables:
- PYTHONPATH: C:\AutoTest\project\tests\robot\libraries,C:\AutoTest\project\gen-py,C:\AutoTest\project\tests\robot\resources
- PYTHONBUFFERED: 1
- Python interpreter: C:\AutoTest\project\venv\Scripts\python.exe
- Working directory: C:\AutoTest\project
- ✅ Add content roots to PYTHONPATH
- ✅ Add source roots to PYTHONPATH
-
Environment variables:
В PyCharm Professional некоторые поля имеют другое название или порядок
- Name: demo.robot
- Run: C:\AutoTest\project\venv\Scripts\python.exe
- Script: C:/AutoTest/project/venv/Lib/site-packages/robot/run.py
- Script parameters: -v browser:chrome --test "*" C:/AutoTest/project/tests/robot/tests/demo.robot
- Working directory: C:\AutoTest\project
-
Environment variables:
PYTHONPATH: C:\AutoTest\project\tests\robot\libraries,C:\AutoTest\project\gen-py,C:\AutoTest\project\tests\robot\resources
PYTHONBUFFERED: 1 - Add content roots to PYTHONPATH ✕
- Add source roots to PYTHONPATH ✕
Запуск тестов с библиотеками
Чтобы перейти к настройке PyCharm для запуска робот тестов добавьте все пути до библиотек и ресурсов в интерпертатор.
File → Settings → Project → Project Interpreter →= ⌵ → Show all → Выберите нужный интерпретатор → В правом тулбаре пять иконок, кликните иконку дерева папок → + → Выберите директорию → OK
Например
C:\AutoTest\project\tests\robot\Libraries (added by user) C:\AutoTest\project\tests\robot\Resources (added by user) C:\AutoTest\project\tests\robot (added by user) C:\AutoTest\project\gen-py (added by user)

testsetup.ru
Запуск тестов с опциями
Чтобы в PyCharm использовать опции запуска тестов, например, --include их нужно указывать в конфигурации

testsetup.ru
Working directory
С помощью Working directory можно задать директорию, из которой будут запускаться тесты.
Это может пригодиться, если вы решили запустить тесты, предназначенные для запуска в CI/CD пайплайне. Например в
Jenkins
или
GitHub Actions
Эти тесты могут опираться на конкретную директорию на раннере. Например:
# common.py from robot.libraries.BuiltIn import BuiltIn _built_in = BuiltIn() def get_robot_variable(variable_name: str) -> Any: return _built_in.get_variable_value("${" + variable_name + "}") N_FTR_RSRCS: Path = Path(get_robot_variable("EXECDIR")).joinpath("xyz", "Resources", "n_ftr")
В коде выше подразумевается, что тесты запущены из директории, родительской к xyz. Она не указана явно, но допустим, что это autotests.
Если в структуре проекта робот будет расположен так, что как EXECDIR он видит, например, директорию, родительскую по отношению к autotests
то в пути образуется пробел.
repo_name | `--autotests | |-- __init__.py | `-- xyz | |-- __init__.py | `-- Resources | `-- n_ftr `-- venv
Ошибка, которую выдаст Python будет выглядеть примерно так:
FileNotFoundError: [Errno 2] No such file or directory
Чтобы её избежать нужно явно указать путь до autotests в Working directory

testsetup.ru
Автор статьи: Андрей Олегович