Как добавить крюк pre-commit, который будет запускать мои тесты rspec, и, если какой-либо сбой, не завершит фиксацию. Я могу получить тесты для работы, но не предотвратить совершение любого провала ихКак можно использовать git-захват pre-commit rspec и предотвращать фиксацию?
Я скопированный .git/hooks/pre-commit.sample
в .git/hooks/pre-commit
Я добавил rspec spec
вблизи дна.
Тестирование выполняется как часть фиксации ... но сбой не останавливает фиксацию.
$ git commit -m'test'
....................................................................................................F.............
Failures:
1) Link Good url SHOULD be valid
Failure/Error: expect(link.valid_get?).to be false #true
expected false
got true
# ./spec/models/link_spec.rb:26:in `block (2 levels) in <top (required)>'
Finished in 32.78 seconds (files took 3.58 seconds to load)
114 examples, 1 failure
Failed examples:
rspec ./spec/models/link_spec.rb:24 # Link Good url SHOULD be valid
[79230846_hook_to_run_tests 6c09570] test
1 file changed, 1 insertion(+)
create mode 100644 x.x
Может быть, мне нужен другой способ запустить тесты rspec, которые поднимут ненулевую ошибку, в которой я нуждаюсь?
В настоящее время она находится в нижней части:
...
echo
echo " git config hooks.allownonascii true"
echo
exit 1
fi
rspec spec
exec git diff-index --check --cached $against --
Я делаю все это в отрасли (не мастер). Не знал, имеет ли это значение.