gpt4 book ai didi

ruby-on-rails - 预提交 git hook 如何运行 rspec 测试并阻止提交?

转载 作者:太空狗 更新时间:2023-10-29 12:52:13 24 4
gpt4 key购买 nike

我如何添加一个预提交 Hook 来运行我的 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 --

我在一个分支(不是 master)做所有这些。不知道这是否相关。

最佳答案

我发现使用

exec rspec spec

.git/hooks/pre-commit

给了我想要的功能-
提交尝试会触发 rspec 测试运行,只有在所有 rspec 测试都通过后,提交才会完成。

关于ruby-on-rails - 预提交 git hook 如何运行 rspec 测试并阻止提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953411/

24 4 0
文章推荐: javascript - 如何使用 Javascript 重置浏览器 'back' 按钮上的下拉列表