Рубрики
Без рубрики

Почему мои тесты проваливаются только во время предварительной коммиссии?

Симптом Недавно я пробежал (то, что я думал, что было) странное поведение. Я использую предварительный коммит … Теги с Python, Pteest, преобладают, git.

Симптом

Недавно я пробежал (то, что я думал, что было) странное поведение.

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

У меня также есть делать цель, чтобы запустить только тесты единиц.

Каждый раз, когда я пытался совершить, агрегат тест шага в Предварительный коммит потерпит неудачу – что указывает на то, что тесты на единицу не проходили. Но когда я бегу сделать подразделение Это пройдет. 🤷

Во время Предварительный коммит Pytest вернется с Выходной код 5 – который указывает Нет тестов RAN Отказ Так что это не так, чтобы один или несколько тестов не удались во время Предварительный коммит – Но ничего не было проверено – И из-за ненулевого выхода кода Предварительный коммит предотвратил совершение (как оно должно)

Первопричина

Оказывается Предварительный коммит Запускает все шаги только на модифицированных файлах. Он передает список модифицированных файлов для каждой команды – неявно. То есть, если вы не настраиваете его не. 😀

Поэтому, когда я изменив исходный файл (не тестовый файл) – Pтойцы будут «игнорировать» файл – поскольку он не будет содержать никаких тестов.

Решение

Теперь, когда мы понимаем «почему» – решение очевидно.

Пациент: доктор, болит, когда я делаю это

Доктор: Тогда не делай что 😂

Для шага тестирования подразделения попросите предварительный коммит не передавать имена файлов в качестве аргумента через pass_filenames: ложный

Ссылка

Оригинал: “https://dev.to/mandarvaze/why-my-tests-fail-only-during-pre-commit-3f76”