如何关闭Rspec的详细日志记录?

Roo*_*one 3 ruby rspec ruby-on-rails rspec-rails

运行我们的rspec测试套件时

bundle exec rspec spec/
Run Code Online (Sandbox Code Playgroud)

日志中包含很多日志语句.特别是,控制器规格多次显示这样的事情:

{"controller"=>"myController", "action"=>"create"}
Run Code Online (Sandbox Code Playgroud)

我想摆脱这些但找不到来源.没有与这样的匹配的puts语句,也没有任何Rails.logger调用.我假设这是一个日志级问题,但我可能是错的.在environment/test.rb中设置config.log_level无效.

当前的rspec配置如下所示

RSpec.configure do |config|
  config.include Devise::TestHelpers, :type => :controller
  config.mock_with :rspec


  config.before(:suite) do
    DatabaseCleaner.strategy = :truncation
    DatabaseCleaner.orm = "mongoid"
  end

  config.before(:each) do
    DatabaseCleaner.clean
  end

  config.color_enabled = true
  config.tty = true
  config.formatter =  :documentation # :progress, :html, :textmate
end
Run Code Online (Sandbox Code Playgroud)

关于如何禁用这些类型的日志的任何想法?

旁注:Gemfile使用'rails','3.2.13'和'rspec-rails','2.14.0'

小智 30

如果有人稍后遇到同一个帖子,我发现我遇到了同样的问题,但是,它来自rails_12factor我的Gemfile 中的Heroku gem.

另一位用户表示宝石正在为他们造成双重输出:双控制台输出?

只要我将其注释掉或将其放入:production组中,我控制台中的所有详细SQL输出都会消失.

因此,检查您是否有同样的问题只是另一件事,但作者的解决方案并不是为您解决的问题.

  • BOOM你救了我 (2认同)
  • 将rails_12factor放入生产组(如README中)就可以了! (2认同)