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. Дополнительные функции, такие как фикстуры и маркеры, могут использоваться для определения процедур инициализации и демонтажа, а также наборов тестов.