Почему это стоит прочитать. Сгенерированный патч может пройти все модульные тесты, но при этом оставить измеримый беспорядок: новый .env.example с вашим локальным путем, символическую ссылку, указывающую за пределы проверки, или изменение режима, которое приводит к выполнению сценария развертывания...
Почему это стоит прочитать. Сгенерированный патч может пройти все модульные тесты, но при этом оставить измеримый беспорядок: новый .env.example с вашим локальным путем, символическую ссылку, указывающую за пределы проверки, или изменение режима, которое делает скрипт развертывания исполняемым. Размер различий и выходные данные теста ничего этого не показывают. В этой статье представлен воспроизводимый шлюз состояния, который рассматривает файловую систему после запуска кандидата как первоклассный тестовый артефакт.
Модель завоевывает доверие, когда может объяснить свои различия. В файловой системе в первую очередь проявляется необъяснимый побочный эффект. Если вы оцениваете патчи только по размеру различий и статусу тестирования, вы оцениваете ту часть, которую модель хотела, чтобы вы видели. Ремень ниже выравнивает оставшуюся часть.
Снимок, воспроизведение, сравнение с ожидаемым состоянием
Запустите кандидата в одноразовой проверке, снимите отпечатки пальцев каждого файла и символической ссылки до и после, затем сравните измененный набор со списком путей, которые патчу разрешено изменять. Все, что находится за пределами этого списка, не проходит через ворота.
Скрипт записывает хэши контента, цели символических ссылок и режимы разрешений. Он пропускает .git, кэши, virtualenvs и node_modules, поэтому обычный шум инструментов не заглушает сигнал. Вы можете настроить SKIP_DIRS, если ваш проект