gpt4 book ai didi

ruby - Rubocop:当只发现警告时,是否可以告诉 Rubocop 返回零作为退出代码?

转载 作者:行者123 更新时间:2023-12-04 02:32:54 26 4
gpt4 key购买 nike

问题

当只发现警告时,是否可以告诉 Rubocop 返回 0 作为退出代码?


先决条件

  1. 我正在使用以下命令在 Travis CI 上运行 Rubocop:

    bundle exec rubocop
  2. 我有一个在 rubocop.yml 中配置为警告的警察:

    Style/Documentation:
    Severity: warning

问题

Travis CI 仅在其退出代码等于 0 时将命令视为成功。

Rubocop 在没有发现任何违规行为时返回 0 作为退出代码,

但当它发现至少一项违规行为时,

它返回 1 作为退出代码,无论此攻击是错误还是警告。

因此,当 Rubocop 仅发现警告时,Travis CI 构建会失败。

因此,是否可以告诉 Rubocop 在仅发现警告时返回 0 作为退出代码?

提前致谢。


备注

  • 请不要建议禁用警察。

  • 我正在使用以下方法检查退出代码:

    $ bundle exec rubocop
    // ...
    14 files inspected, 8 offenses detected

    $ echo "$?"
    1

最佳答案

--fail-level 标志与适当的 severity 级别一起使用:

rubocop --fail-level error

您可以在 Rubocop Docs for command line flags 中阅读有关此标志的更多信息和 Rubocop Docs for Generic configuration parameters 中的 severity 级别.

给定foo.rb:

# foo.rb
class Foo; end

还有.rubocop.yml:

Style/FrozenStringLiteralComment:
Severity: warning

使用适当的标志运行 Rubocop:

rubocop --fail-level error

并得到以下输出:

Inspecting 1 file
W

Offenses:

foo.rb:1:1: W: Style/FrozenStringLiteralComment: Missing frozen string literal comment.
class Foo
^

然后获取退出码:

echo $?
0

通过修改您的 .rubocop.yml 以使用 error 而不是 warning 来验证它是否按预期工作:

Style/FrozenStringLiteralComment:
Severity: error

再次运行,得到输出:

rubocop --fail-level error
Inspecting 1 file
E

Offenses:

foo.rb:1:1: E: Style/FrozenStringLiteralComment: Missing frozen string literal comment.
class Foo
^

1 file inspected, 1 offense detected

并获取退出码:

echo $?
1

关于ruby - Rubocop:当只发现警告时,是否可以告诉 Rubocop 返回零作为退出代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63163418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com