Существует ли гит хук запускающий тесты только для изменённого куска кода?
Существует ли гит хук (неважно для какой тестовой либы) запускающий тесты только для изменённого куска кода? Не тупо для изменённых файлов, а всех зависимых модулей тоже.
Т.е. алгоритм действия если абстрактно и утрировано: вытаскивает diff, разбирает, что именно оный diff затрагивает, находит все зависимые от затронутого модули, находит все тесты для этих модулей/затронутых кусков этих модулей и запускает.
Я понимаю что это должна быть безумная переусложнённая магическая хрень, но на javascript любят писать безумные переусложнённые магические хрени, потому а вдруг?)
и mocha и jest поддерживают режимы watch. Которые отслеживают изменения в файлах и прогоняют соответствующие тесты
а так - для husky надо поискать плагин
Aetae
@Aetae Автор вопроса, куратор тега JavaScript
Это то само собой.
Нужны не только изменения в конкретных файлах, а и все связанные логически - которые импортируют эти файлы и как-либо используют, и которые по цепочке импортируют и используют импортирующие, и далее по цепочке... Причём связка не полностью по файлам, а по используемым кускам кода.
Ну т.е. алгоритм как tree-shaking, только наоборот) - найдёт все связи которые так или иначе зависят от изменённого куска, и запустит для них тесты.)
В jest есть близкое: --findRelatedTests, но он довольно глупый.