【问题标题】:Exclude gem warnings in rake tests without removing warnings from own code在 rake 测试中排除 gem 警告,而不从自己的代码中删除警告
【发布时间】:2017-11-02 19:56:03
【问题描述】:

在我们当前的 Ruby(ruby 2.4.2p131,由 rbenv 作为 2.4.0-dev 安装)(不是 Rails)项目中,我们使用了许多会产生警告的 g​​em。我很欣赏由我们自己的代码引起的警告,并希望查看和删除它们,但是对于来自 gem 的警告没有什么可做的。有没有办法只显示我们自己的警告?

我搜索了类似的问题,但它们要么需要 Rails,要么想要禁用所有警告。两者都不符合我们的要求。

我还尝试了警告 gem (https://rubygems.org/gems/warning/versions/0.10.0),但未能对其产生任何更改。

编辑 这是我不想看到的两个警告:
aws-sdk-resources-2.9.8/lib/aws-sdk-resources/services/s3/object.rb:61: warning: method redefined; discarding old copy_from

aws-sdk-core-2.9.8/lib/aws-sdk-core/plugins/s3_accelerate.rb:75: warning: assigned but unused variable - ssl

【问题讨论】:

  • 我不确定您为什么要这样做。来自 3rd 方库的警告同样有效——你不应该仅仅因为它“不是你的代码”而忽略它们。
  • 但是,这是否回答了您的问题stackoverflow.com/a/5591812/1954610 ? (见最后一段。)
  • @TomLord 当第 3 方 gem 没有将 end 与其对应的 if 对齐时,老实说,我不太在意,因为我不必自己处理代码。 gem 本身功能齐全,我使用的是最新版本。关于该答案的最后一段:我怀疑它会有所帮助,因为我没有 environment.rb 或 application.rb。两者似乎都是特定于 Rails 的。我可以尝试围绕 Gemfile 做类似的事情,但我不确定它是否会起作用。
  • 嗯...我知道这不是您所要求的相当,但是您是否考虑过用“grep”隐藏那些特定的警告?您可以在spec_helper.rb 中放置一些内容以捕获$stdout 并根据需要对其进行过滤。
  • 没错,不是我想要的,但它给了我一个方向。我通常会调用 rake 来运行测试,然后查看实时输出。我正在考虑在 rake 任务中捕获 stdout 和 stderr 并在那里过滤...这样我可以保持对 rake 的简单调用(测试设置为默认任务)

标签: ruby rubygems suppress-warnings


【解决方案1】:

请参阅 https://github.com/jeremyevans/ruby-warning/,它可以让您按类型和发生警告的文件(例如仅在 gems 中)忽略特定警告。

【讨论】:

【解决方案2】:

在 test_helper 文件的开头添加 $verbose = nil

【讨论】:

  • 什么都不做,必须是$VERBOSE = nil
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多