Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Поддержать проект
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Первый тест за 10 минут
first_test_in_10_minutes

Первый тест за 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 минуты)

  1. Установите расширение Python.
  2. Откройте test_bank_account.py и нажмите подсвеченную кнопку Run Test над тестом.
  3. Или откройте панель 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

Поздравляю! Вы написали свой первый тест и почувствовали контроль над кодом. 🎉

Далее: Структура проекта и импорты без боли