Как фреймворк Pytest упрощает тестирование кода
Как фреймворк Pytest упрощает тестирование кода
Рассказываем, почему разработчики и тестировщики любят этот инструмент и предпочитают его другим фреймворкам.
В стандартной библиотеке Python есть набор инструментов для написания тестов. Он подходит для простых задач — проверки работы отдельных функций или небольших классов: например, если нужно убедиться, что функция правильно складывает числа или небольшой класс правильно обрабатывает данные. Но когда проект усложняется, а количество тестов растёт, нужны более гибкие инструменты — например, чтобы проводить тесты с разными наборами данных или проводить выборочные тестирования.
Один из таких инструментов — фреймворк для тестирования кода Pytest. Он позволяет писать тесты в виде простых функций, а не классов, использует всего одну команду для проверки условий — assert. Это делает код читаемым, а тесты — понятными. К тому же для фреймворка есть множество плагинов, которые упрощают работу с ним.
С помощью Pytest можно тестировать:
Представим, что программист разработал функцию, которая суммирует элементы списка. Ему нужно убедиться, что она работает правильно. Разберём, как разработчик будет действовать с Pytest и без этого фреймворка.
Фреймворки для тестирования используют не только разработчики, но и тестировщики-автоматизаторы. От классических тестировщиков они отличаются знанием языков программирования и более глубоким пониманием работы ПО. Например, чтобы использовать Pytest, тестировщику нужно освоить язык программирования Python. С этого начинается курс «Автоматизатор тестирования на Python». Студенты изучают основы языка и принципы объектно ориентированного программирования. Затем приступают к написанию простых юнит-тестов и постепенно учатся организовывать тестирование веб-приложений.
Самый простой способ установить Pytest — c помощью команды pip в терминале:
pip install -U pytest
Так выглядит установка Pytest в Windows. Она начнётся не сразу, а примерно через минуту
Для установки можно использовать poetry — инструмент для управления зависимостями и пакетами в проектах на Python. Он помогает легко устанавливать нужные библиотеки и следить за тем, чтобы все версии этих библиотек были совместимы друг с другом. Вот так будет выглядеть установка pytest с помощью poetry:
poetry add --dev pytest
Специальной настройки Pytest не требует.
Проверим функцию, которая определяет, является ли число чётным.
1. Создаём Python-файл. Это можно сделать в среде разработки (IDE) или в текстовом редакторе вроде «Блокнота». Назовём его test_example.py. Важно, чтобы расширение было .py, — так pytest поймёт, что имеет дело с python-файлом.
2. Пишем код теста. Чётное число делится на 2 без остатка, а нечётное — с остатком. Сначала мы создаём функцию is_even, которая принимает на вход одно число и возвращает True, если число чётное, и False, если нет. number % 2 — это выражение делит число на 2 и возвращает остаток. Если остаток равен 0, значит, число чётное, и функция возвращает True. Если остаток не равен 0, значит, число нечётное, и функция возвращает False.
Готовый код выглядит так:
def is_even(number):
return number % 2 == 0
def test_is_even():
assert is_even(2) == True # 2 — чётное число
assert is_even(3) == False # 3 — нечётное число
assert is_even(0) == True # 0 — считается чётным числом
assert is_even(-4) == True # -4 — чётное число