Làm thế nào tôi có thể thêm một móc trước khi cam kết sẽ chạy thử nghiệm rspec của tôi và nếu có bất kỳ, sẽ không hoàn thành cam kết. Tôi có thể lấy các bài kiểm tra để chạy nhưng không ngăn cản các cam kết trên bất kỳ thất bại của họLàm thế nào có thể một git hook trước cam kết chạy kiểm tra rspec và ngăn chặn một cam kết?
tôi đã sao chép .git/hooks/pre-commit.sample
-.git/hooks/pre-commit
Tôi đã thêm rspec spec
gần phía dưới.
Các thử nghiệm chạy như một phần của cam kết ... nhưng sự thất bại không làm ngừng cam kết hoàn thành.
$ 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
Có lẽ tôi cần một cách khác để chạy các kiểm tra rspec sẽ làm tăng sai số khác không cần thiết?
Hiện nay nó được đặt ở phía dưới:
...
echo
echo " git config hooks.allownonascii true"
echo
exit 1
fi
rspec spec
exec git diff-index --check --cached $against --
tôi đang làm tất cả điều này trong một chi nhánh (không làm chủ). Không biết liệu điều đó có liên quan hay không.