防止rspec输出服务器和数据库日志

Edu*_*sta 2 ruby rspec ruby-on-rails

当我运行rspec时,我将其包含在控制台中:

ActiveRecord::SchemaMigration Load (0.1ms)  SELECT "schema_migrations".* FROM     "schema_migrations"
   (0.1ms)  begin transaction
   (0.0ms)  commit transaction
   (0.0ms)  begin transaction
Started GET "/" for 127.0.0.1 at 2014-01-28 11:44:06 -0600
Processing by HomeController#index as HTML
Rendered home/index.html.haml within layouts/application (28.1ms)
Completed 200 OK in 54ms (Views: 52.0ms | ActiveRecord: 0.0ms)
   (0.1ms)  rollback transaction
Run Code Online (Sandbox Code Playgroud)

这是我的spec_helper.rb:

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rails'
require 'capybara/rspec'

Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)

RSpec.configure do |config|
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true

  config.infer_base_class_for_anonymous_controllers = false

  config.order = "random"

  config.use_transactional_fixtures = false

  config.before(:each) do
    DatabaseCleaner.strategy = if example.metadata[:js]
      :truncation
    else
      :transaction
    end
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end
end
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我也在使用rbenv,sqlite和Ubuntu.我使用rails 4.1.0beta1并使用spring命令运行rspec bin/rspec.

小智 10

我也在使用rbenv,为了使日志静音,您可以在控制台中执行以下操作(可能有助于设置快捷方式):

ActiveRecord::Base.logger.level = Logger::INFO
ActionController::Base.logger.level = Logger::ERROR
Rails.logger.level = Logger::ERROR
Run Code Online (Sandbox Code Playgroud)

  • 我把它添加到我的rails_helper文件中,它运行得很好.谢谢. (2认同)