Раздел 43 · Автотестирование с нуля

Модули и пакеты

junior~20 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Оля · DevOps, #infra-antrakt

tests_final_v2 в CI собирается через раз: то pytest не той версии, то пакета нет. Глеб ставил всё глобально у себя на ноутбуке, списка зависимостей нет. А ещё там helpers.py на девятьсот строк, его импортируют все. Наведёшь порядок до пятницы? Хочу, чтобы сборка работала одной командой.

В прошлом уроке ты резал функции на части. Частей стало много, и пора разложить их по файлам. Сегодня разберём, как файлы проекта видят друг друга, откуда в проекте берутся чужие пакеты и как сделать, чтобы набор тестов собирался одинаково у тебя, у Оли и в CI.

Мастерская с ящиками

Представь мастерскую, где все инструменты свалены в одну коробку. Чтобы найти отвёртку, вытряхиваешь всё. Порядок наводят ящиками с подписями: «отвёртки», «свёрла», «клей». Взять нужное можно, не трогая остального.

Вторая беда мастерской: инструменты общие на весь дом. Сосед взял твой клей, а вернул другой марки, и у тебя перестала держаться полка. Поэтому для каждой работы собирают свой набор, а на крышку клеят список: что в наборе и какой марки. По списку набор соберёт кто угодно.

Ящики с подписями это модули. Свой набор для работы это виртуальное окружение. Список на крышке это pyproject.toml или package.json.

урок из курса

Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.