Pytest — это библиотека Python, которая помогает запускать модульные тесты. Это позволяет пользователям автоматически запускать различные наборы тестов и создавать отчеты о тестировании.

Настраивать

Чтобы использовать pytest, его необходимо сначала установить. Это можно сделать с помощью следующей команды

pip install pytest

Применение

По умолчанию запуск pytest в командной строке запустит все файлы .py, которые начинаются с test_ или заканчиваются на _test в текущем каталоге. Это также можно настроить с помощью дополнительных команд. В этих файлах он проверит каждую функцию, начинающуюся с test.

Затем Pytest создаст сводку тестов, указав, сколько из них пройдено, а сколько нет. Pytest сообщает, как тесты провалились.

Пример

Для использования в качестве примера будет протестирован следующий класс. Он определен в файле с именем myClass.py.

class MyClass:
#addition
def f1(a, b):
return a + b
#subtraction
def f2(a, b):
return a — b

Чтобы проверить это, тестовый файл должен быть создан в том же каталоге. Следующий файл называется test_myClass.py. Обратите внимание, что имя файла должно начинаться с test_ или заканчиваться на _test. Для начала импортируйте pytest и MyClass

import pytest
from myClass import MyClass

Затем определяются тестовые функции. Их имена должны начинаться с test. Для этих тестов выполняется простой шаг утверждения, чтобы убедиться, что выходные данные функции соответствуют ожидаемому значению.

def testf1():
assert MyClass.f1(1, 2) == 3, f”Calculating 1 + 2; expected value is 3; actual value is {MyClass.f1(1, 2)}”
assert MyClass.f1(2, 3) == 5, f”Calculating 2 + 3; expected value is 5; actual value is {MyClass.f1(2, 3)}”
def testf2():
assert MyClass.f2(1, 2) == -1, f”Calculating 1–2; expected value is -1; actual value is {MyClass.f2(1, 2)}”
assert MyClass.f2(4, -1) == 5, f”Calculating 4 — (-1); expected value is 5; actual value is {MyClass.f2(4, -1)}”

Чтобы запустить тестовый файл, просто откройте командную строку в каталоге, содержащем тестовый файл, и введите команду pytest.

Pytest показывает, что все тесты пройдены

Чтобы показать, как pytest обрабатывает сбои, f2 был изменен, чтобы выполнять сложение вместо вычитания, как предполагалось.

#subtraction
def f2(a, b):
return a + b

Затем запуск pytest покажет, какой тест не пройден.

Это основные шаги для начала работы с pytest. Дополнительные функции, такие как фикстуры и маркеры, могут использоваться для определения процедур инициализации и демонтажа, а также наборов тестов.