如何配置 RubyMine 以防止提交出现 YARD 返回类型错误?

问题描述 投票:0回答:1

我正在使用 RubyMine 作为 IDE 开发 Ruby 项目,并且正在使用 YARD。我很好奇是否有一种方法可以配置 RubyMine 来限制包含 YARD 返回类型不匹配错误的提交。

考虑以下示例:

# @param [Integer] integer input 
# @return [String] 
def foo(input)
  input # This causes a type mismatch
end

在上面的代码中,YARD 注释中指定的返回类型与方法的实际返回类型之间存在明显的不匹配。

虽然我知道 RubyMine 能够在编辑器窗口中显示 YARD 错误(如下面的屏幕截图所示),但我还没有找到一个内置功能,可以在检测到此类类型不匹配时主动阻止提交。

有没有办法配置 RubyMine(也许通过插件或外部工具)在允许提交之前强制执行此检查?如果不是直接在 RubyMine 中,是否有其他方法可以用来实现此功能?

ruby rubymine pre-commit-hook yard
1个回答
0
投票

如果您在 IDE 中执行此操作,那么它们仅适用于您的特定 IDE,并且仅适用于您。最好对整个项目都这样做。

预提交检查通常由版本控制系统处理,但如果每次提交都需要它们,它们可能会变得极其乏味且缓慢。此外,要求每次提交都通过每项测试和每项代码质量检查是极其严格的;在大型或复杂的重构期间,即使事情被破坏,提交通常也是有用的。

有必要每次提交都完美吗?如果您使用的是分布式版本控制系统(例如 Git),则提交是本地的;它们只会影响你,直到你推动它们。损坏的提交并不像损坏的推送那么重要。即便如此,你应该始终在分支中工作,所以损坏的分支也不重要。重要的时刻是将分支合并到主代码中;这时必须进行严格的测试以避免破坏其他人的代码。


最好在分支合并审查过程中进行强制性代码质量检查(例如,拉取请求),并且它们应该是自动化的。这样每个人的代码都会得到检查。

最简单的事情就是将您喜欢的任何检查添加到 Rakefile 中,然后任何人都可以选择使用它们。如果您愿意,可以添加预提交挂钩以在提交之前运行检查,但不要在整个项目上强制执行此操作。然后您的审核流程会要求这些检查通过。

Github 等系统有自己的方法将这些检查集成到您可能想要使用的审核流程中。

© www.soinside.com 2019 - 2024. All rights reserved.