У агента тесты зелёные, в CI красные: где искать расхождение

Сравните точные команды, зависимости и условия запуска. Фраза «тесты прошли» без указания набора и окружения не означает, что выполнена та же проверка, что в CI.

Пример из разработки

Локально агент запустил один модуль с уже установленными пакетами. В CI проверяется весь проект на чистой установке и другой временной зоне. Новый тест использует текущую дату и проходит только вечером по местному времени разработчика. Код можно долго переписывать, хотя причина — скрытая зависимость проверки от окружения.

Почему это работает

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

Проверка перед использованием

ПроверкаОжидаемое поведение
Тот же тест в двух временных зонахОжидаемый результат одинаков там, где контракт не зависит от локального времени.
Чистая установка из lock-файлаНе требуется случайный глобальный пакет или незаявленная локальная настройка.
Сравнение локального отчёта и CIСовпадают имена проверок и количество случаев; пропущенные или отключённые тесты видны явно.

Проверьте также рабочий каталог команды и конфигурацию отбора тестов. Одинаковое имя команды в разных пакетах монорепозитория может запускать совершенно разные проверки и создавать ложное впечатление полного совпадения.

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

В агентной разработке полезно требовать воспроизводимое доказательство проверки, которое сможет повторить другой человек или CI. В платном курсе Vibecoding: Claude Code, Codex, Cursor и agentic development можно продолжить изучение соответствующего инженерного направления. Перед покупкой сравните программу и открытые материалы со своей задачей.

Документация для проверки технических деталей: Фикстуры pytest.

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