Как ты управляешь зависимостями: venv, pip, requirements.txt (или Poetry)?
1️⃣ Как кратко ответить
Для управления зависимостями в проектах AQA я использую venv для создания изолированных виртуальных окружений, pip для установки пакетов, requirements.txt для фиксации версий зависимостей и их воспроизведения. Также применяю Poetry для более удобного управления зависимостями и версионирования, а также для автоматизации создания и публикации пакетов.
2️⃣ Подробное объяснение темы
Управление зависимостями в проектах автоматизации тестирования (AQA) — это важный аспект, который позволяет обеспечить стабильность и воспроизводимость тестов. Рассмотрим основные инструменты, которые используются для этой цели.
venv
venv — это модуль Python, который позволяет создавать изолированные виртуальные окружения. Виртуальное окружение — это отдельная среда, в которой можно устанавливать пакеты Python, не влияя на системные библиотеки и другие проекты.
Пример использования:
# Создание виртуального окружения
python -m venv myenv
# Активация виртуального окружения
# Windows
myenv\Scripts\activate
# macOS/Linux
source myenv/bin/activate
# Деактивация виртуального окружения
deactivate
python -m venv myenv: Создает новое виртуальное окружение в папкеmyenv.activate: Активирует виртуальное окружение, изменяя путь к исполняемым файлам Python.deactivate: Возвращает в системное окружение.
pip
pip — это стандартный инструмент для установки пакетов Python. Он работает в связке с venv для установки зависимостей в виртуальное окружение.
Пример использования:
# Установка пакета
pip install requests
# Установка пакетов из файла requirements.txt
pip install -r requirements.txt
# Сохранение установленных пакетов в файл
pip freeze > requirements.txt
pip install requests: Устанавливает пакетrequestsв активированное виртуальное окружение.pip install -r requirements.txt: Устанавливает все пакеты, перечисленные вrequirements.txt.pip freeze > requirements.txt: Сохраняет текущие версии всех установленных пакетов вrequirements.txt.
requirements.txt
requirements.txt — это текстовый файл, в котором перечислены все зависимости проекта с указанием их версий. Это позволяет другим разработчикам или системам воспроизвести точно такую же среду.
Пример содержимого:
requests==2.25.1
pytest==6.2.2
requests==2.25.1: Указывает, что для работы проекта требуется версия2.25.1пакетаrequests.pytest==6.2.2: Указывает на необходимость версии6.2.2пакетаpytest.
Poetry
Poetry — это инструмент для управления зависимостями и упаковки Python-проектов. Он предоставляет более удобный интерфейс для работы с зависимостями и автоматизирует многие задачи, такие как создание и публикация пакетов.
Пример использования:
# Инициализация нового проекта
poetry init
# Установка пакета
poetry add requests
# Установка всех зависимостей
poetry install
# Запуск скрипта в окружении Poetry
poetry run python script.py
poetry init: Создает файлpyproject.toml, в котором хранятся все зависимости и настройки проекта.poetry add requests: Устанавливает пакетrequestsи автоматически добавляет его вpyproject.toml.poetry install: Устанавливает все зависимости, указанные вpyproject.toml.poetry run python script.py: Запускает скриптscript.pyв окружении, созданном Poetry.
Использование этих инструментов позволяет эффективно управлять зависимостями, обеспечивая стабильность и воспроизводимость тестовых сред в проектах автоматизации.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться