如何关闭'rake test'中的警告'ruby -w'?

Phl*_*lip 5 ruby-on-rails ruby-on-rails-4

由于其他人草率的编码习惯,我继承了一个包含数百个警告的大型 Rails 项目,我无法修复这些。

当我运行一个单独的测试套件时,使用ruby test/function/my_controller_test.rb,我得到了一个干净的运行,没有警告。但是当我运行时rake test,Rails 的 rake 任务中的某些东西会打开ruby -w,从而激活 Ruby 的警告系统。如何停用该行?-w如果必须,我将编辑源并删除源,但它在哪里?

答案不是rake -q- 这会关闭 rake 自己的喷出。

tad*_*man 12

如果你想抑制这个,如果你使用的是 POSIX 类型的 shell,你可以将它添加到你的 shell 配置中:

export RUBYOPT=-W0
Run Code Online (Sandbox Code Playgroud)

或者您可以将其添加到任何命令中:

RUBYOPT=-W0 ruby ...
Run Code Online (Sandbox Code Playgroud)

对于其他 shell,您需要以某种方式设置该环境变量。


小智 8

我确信这个问题早已得到解决,但是对于任何未来发现这个问题的人来说,在 rakefile 中有一个干净的方法可以处理。只需添加t.warning = false到您的 raketask 配置中即可。例如,一个超级通用的例子是:

Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = FileList['source_code/*_test.rb']
  t.verbose = true
  t.warning = false 
end
Run Code Online (Sandbox Code Playgroud)

修复警告仍然是最好的解决方案,但如果需要,就在这里:)