🚀 Первый тест за 10 минут: настройка и быстрый старт
⚠️ Урок устарел. Свежая версия с актуальными практиками находится в курсе pytest-basics: Первый тест за 10 минут.
Цель урока — за 15 минут почувствовать ценность тестов
✅ Один файл кода + один файл тестов
✅ Красная/зелёная галочка без сложной настройки
✅ Запуск из терминала и из IDE в один клик
Шаг 1. Установка и первый тест (5 минут)
Установите pytest:
pip install pytestСоздайте два файла в одной папке:
# bank_account.py
class BankAccount:
def __init__(self):
self.balance = 0
def deposit(self, amount):
self.balance += amount
def withdraw(self, amount):
if amount > self.balance:
raise ValueError("Not enough money")
self.balance -= amount# test_bank_account.py
from bank_account import BankAccount
def test_deposit():
account = BankAccount()
account.deposit(100)
assert account.balance == 100
def test_withdraw():
account = BankAccount()
account.deposit(100)
account.withdraw(30)
assert account.balance == 70Запуск из терминала:
pytest -vПолучили зелёную галочку — цель выполнена.
Шаг 2. Ловим первый баг (3 минуты)
Сломайте метод withdraw:
def withdraw(self, amount):
self.balance -= amount # 💥 убрали проверкуПерезапустите pytest -v. Тест упадёт с ValueError отсутствует — это и есть доказательство пользы тестов: баг пойман до релиза.
Шаг 3. Запуск из IDE (VS Code, 4 минуты)
- Установите расширение Python.
- Откройте
test_bank_account.pyи нажмите подсвеченную кнопку Run Test над тестом. - Или откройте панель Testing (иконка мензурки) и запустите все тесты.
Шаг 4. Что дальше? (3 минуты)
- Следующий урок: как раскладывать код и тесты по папкам и не ловить
ImportError. - Дальше:
pytest.raisesдля проверки ошибок и фикстуры для подготовки данных. - Ещё дальше: конфигурация
pytest.iniи запуск в CI.
Минимальная структура
first-test/
bank_account.py
test_bank_account.pyЕсли что-то пошло не так
❌ ModuleNotFoundError: держите код и тест в одной папке на этом уроке. Структуру проекта покажем дальше.
❌ pytest: command not found: убедитесь, что вы в том же виртуальном окружении, где ставили pytest (python -m venv .venv && source .venv/bin/activate при необходимости).
Чеклист
✅ Установили pytest
✅ Запустили тесты из терминала
✅ Увидели, как тест ловит баг
✅ Запустили тесты из IDE
Поздравляю! Вы написали свой первый тест и почувствовали контроль над кодом. 🎉