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

Организация тестов: папки, conftest и маркеры

junior~30 мин

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

Оля · DevOps, #infra-antrakt

В CI у tests_final_v2 одна job на всё: девять минут, и любой красный тест держит мерж. Хочу две: быстрая на каждый коммит и медленная со стендом раз в ночь. Для этого мне нужна одна команда «запусти только быстрые». Сейчас её не написать: в test_everything.py быстрые вперемешку с медленными. Сможешь навести порядок до пятницы?

В прошлом уроке у тестов появились фикстуры. Тестов и фикстур становится больше, а файл у Глеба по-прежнему один. Сегодня разложим набор так, чтобы нужный тест находился за секунду, общая подготовка лежала в одном месте, а запустить можно было любую часть набора одной командой.

Костюмерная

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

Когда помощник режиссёра просит «все костюмы второго акта», костюмер не перебирает кучу, а снимает вешалки с нужными бирками.

В наборе тестов то же самое. Стойки это файлы и папки, общая полка это файл с общими фикстурами, бирки это маркеры. Запуск части набора это просьба «все костюмы с такой биркой».

урок из курса

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

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