Симптом
Недавно я пробежал (то, что я думал, что было) странное поведение.
Я использую Предварительный коммит
Для всех моих GIT комбинирует, и один из шаг – убедиться, что все тесты модуля проходят.
У меня также есть делать
цель, чтобы запустить только тесты единиц.
Каждый раз, когда я пытался совершить, агрегат тест шага в Предварительный коммит
потерпит неудачу – что указывает на то, что тесты на единицу не проходили. Но когда я бегу сделать подразделение
Это пройдет. 🤷
Во время Предварительный коммит
Pytest вернется с Выходной код 5
– который указывает Нет тестов RAN
Отказ Так что это не так, чтобы один или несколько тестов не удались во время Предварительный коммит
– Но ничего не было проверено – И из-за ненулевого выхода кода Предварительный коммит
предотвратил совершение (как оно должно)
Первопричина
Оказывается Предварительный коммит
Запускает все шаги только на модифицированных файлах. Он передает список модифицированных файлов для каждой команды – неявно. То есть, если вы не настраиваете его не. 😀
Поэтому, когда я изменив исходный файл (не тестовый файл) – Pтойцы будут «игнорировать» файл – поскольку он не будет содержать никаких тестов.
Решение
Теперь, когда мы понимаем «почему» – решение очевидно.
Пациент: доктор, болит, когда я делаю это
Доктор: Тогда не делай что 😂
Для шага тестирования подразделения попросите предварительный коммит не передавать имена файлов в качестве аргумента через pass_filenames: ложный
Ссылка
Оригинал: “https://dev.to/mandarvaze/why-my-tests-fail-only-during-pre-commit-3f76”