У агента тесты зелёные, в CI красные: где искать расхождение
Сравните точные команды, зависимости и условия запуска. Фраза «тесты прошли» без указания набора и окружения не означает, что выполнена та же проверка, что в CI.
Пример из разработки
Локально агент запустил один модуль с уже установленными пакетами. В CI проверяется весь проект на чистой установке и другой временной зоне. Новый тест использует текущую дату и проходит только вечером по местному времени разработчика. Код можно долго переписывать, хотя причина — скрытая зависимость проверки от окружения.
Почему это работает
Сохраните команду, версию рантайма, используемый lock-файл, переменные без секретных значений и список выполненных тестов. Повторите CI-команду в чистом окружении, затем уменьшайте различие по одному фактору. Время, случайность и внешнюю сеть делайте явными зависимостями теста, если они не являются предметом проверки. Не выключайте нестабильный тест только ради зелёного статуса: сначала выясните, говорит ли он о реальном дефекте.
Проверка перед использованием
| Проверка | Ожидаемое поведение |
|---|---|
| Тот же тест в двух временных зонах | Ожидаемый результат одинаков там, где контракт не зависит от локального времени. |
| Чистая установка из lock-файла | Не требуется случайный глобальный пакет или незаявленная локальная настройка. |
| Сравнение локального отчёта и CI | Совпадают имена проверок и количество случаев; пропущенные или отключённые тесты видны явно. |
Проверьте также рабочий каталог команды и конфигурацию отбора тестов. Одинаковое имя команды в разных пакетах монорепозитория может запускать совершенно разные проверки и создавать ложное впечатление полного совпадения.
Совпадение окружений уменьшает число неизвестных, но не доказывает отсутствие гонок и внешних сбоев. Для таких проблем нужны повторяемая нагрузка и отдельное наблюдение за условиями отказа.
В агентной разработке полезно требовать воспроизводимое доказательство проверки, которое сможет повторить другой человек или CI. В платном курсе Vibecoding: Claude Code, Codex, Cursor и agentic development можно продолжить изучение соответствующего инженерного направления. Перед покупкой сравните программу и открытые материалы со своей задачей.
Документация для проверки технических деталей: Фикстуры pytest.
Следующий шаг: AI-разработка: разборы ошибок, изменений и проверки кода. По смежным вопросам: AI написал тесты из моков: что они действительно проверяют, Два coding agent в одном репозитории: как разделить работу.
