Pytest — фреймворк для автоматического тестирования в языке программирования Python. dzen.ru Он предоставляет простой и удобный способ написания и выполнения тестовых случаев, а также обширный набор инструментов для организации и управления тестами. dzen.ru
Чтобы начать работу с pytest, нужно выполнить следующие шаги: python-academy.org
- Установить pytest. python-academy.org Если фреймворк ещё не установлен, можно сделать это с помощью pip. python-academy.org
- Создать файл с тестами. python-academy.org По умолчанию pytest автоматически находит файлы, имена которых начинаются с test_ или заканчиваются на test.py. python-academy.org Внутри этих файлов pytest ищет функции, имена которых начинаются с test. python-academy.org
- Написать тестовые функции. python-academy.org Каждая из них проверяет один конкретный аспект работы функции. python-academy.org Внутри каждой тестовой функции используется ключевое слово assert, за которым следует выражение. python-academy.org Если выражение истинно, тест считается пройденным. python-academy.org Если ложно — тест провален. python-academy.org
- Запустить тесты. python-academy.org Для этого нужно открыть терминал, перейти в директорию, где сохранён файл с тестами, и выполнить команду pytest. python-academy.org pytest найдёт все файлы и функции, соответствующие его соглашениям об именовании, и запустит их. python-academy.org
Некоторые возможности pytest для работы с тестовыми данными:
- Утверждения. dzen.ru ru.hexlet.io Это ключевой механизм для проверки правильности выполнения кода в тестовых случаях. dzen.ru Они позволяют сравнивать фактические результаты выполнения кода с ожидаемыми. dzen.ru
- Параметризация. dzen.ru Позволяет определить один тестовый случай, который будет выполняться с различными наборами параметров. dzen.ru
- Фикстуры. dzen.ru Используются для создания и предварительной настройки тестового окружения. dzen.ru
- Метки тестов. thecode.media Позволяют группировать тесты и запускать только нужные. thecode.media Например, можно пометить тесты как «медленные», «критические», «интеграционные» и запускать только те, которые нужны в определённый момент времени. thecode.media