Оля · DevOps, #infra-antrakt
tests_final_v2в CI собирается через раз: то pytest не той версии, то пакета нет. Глеб ставил всё глобально у себя на ноутбуке, списка зависимостей нет. А ещё тамhelpers.pyна девятьсот строк, его импортируют все. Наведёшь порядок до пятницы? Хочу, чтобы сборка работала одной командой.
В прошлом уроке ты резал функции на части. Частей стало много, и пора разложить их по файлам. Сегодня разберём, как файлы проекта видят друг друга, откуда в проекте берутся чужие пакеты и как сделать, чтобы набор тестов собирался одинаково у тебя, у Оли и в CI.
Мастерская с ящиками
Представь мастерскую, где все инструменты свалены в одну коробку. Чтобы найти отвёртку, вытряхиваешь всё. Порядок наводят ящиками с подписями: «отвёртки», «свёрла», «клей». Взять нужное можно, не трогая остального.
Вторая беда мастерской: инструменты общие на весь дом. Сосед взял твой клей, а вернул другой марки, и у тебя перестала держаться полка. Поэтому для каждой работы собирают свой набор, а на крышку клеят список: что в наборе и какой марки. По списку набор соберёт кто угодно.
Ящики с подписями это модули. Свой набор для работы это виртуальное окружение. Список на крышке это pyproject.toml или package.json.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.