Начало работы с Pytest | OTUS

Начало работы с Pytest

Pytest называют одним из лучших тестовых фреймворков для Python. Это не удивительно, ведь Pytest прост, масштабируем, и, как порой утверждают, «пайтоничен». С его помощью тест-кейсы пишут как функции, а не классы, плюс существуют всевозможные плагины, позволяющие добавлять параллельный запуск, красивые отчеты и т. п. Что ж, давайте создадим первый тестовый проект на Python и напишем первый тест.

Для начала скачиваем и устанавливаем Python 3. Далее создаем для нашего проекта новую директорию:

1-1801-fafaf4.png

При создании нового Python-проекта неплохим решением является создание виртуального окружения для его зависимостей. Что это даст? Ну, к примеру, у ваших проектов, размещенных на одной машине, будут отсутствовать конфликтующие версии пакетов.

Для решения поставленной задачи воспользуемся pipenv:

2-1801-14dbca.png

Теперь можно установить pytest для нашего нового проекта:

3-1801-3c6e8e.png

Pipenv добавит в проект 2 новых файла: — Pipfile; — Pipfile.lock.

Первый служит для определения требования проекта, второй «блокирует» явные версии, которыми этот проект будет пользоваться. Что касается опции «–dev» в команде выше, то она означает, что пакет pytest станет применяться не для деплоя, а для разработки.

Пишем первый тест

Традиционно тесты размещают в директории tests/. Не будем нарушать эту традицию:

4-1801-6f2750.png

Теперь создадим для первого теста «Пайтон»-модуль с именем test_math.py и сразу добавим следующий код:

5-1801-083c99.png

Тестам, которые пишутся посредством pytest, как правило, много кода не требуется. Можно сказать, что 2 строчки выше — это уже полноценный тест-кейс, причем он написан как функция, а не как класс. Импорты для этого базового теста не нужны. Вместо кастомных контрольных вызовов применяют нативный оператор контроля Python.

Запускаем тест

Что же, давайте выполним запуск. Для этого поменяем директорию на корневую директорию проекта, а потом вызовем модуль pytest:

6-1801-f9ed7e.png

Ура, первый тест пройден успешно!

Как же pytest обнаружил наш первый тест? Сделал он это по имени, то есть pytest ищет тест-функции с названием test_* в модулях с названием test_*.py. Причем интересный момент заключается в том, что pytest не требует в тестовых директориях файла __init__.py.

По материалам: https://blog.testproject.io/2019/07/16/python-test-automation-project-using-pytest/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто