Can I log to test.log with rspec?

Sta*_*ers 6 ruby rspec ruby-on-rails

Here's a simple spec just to test this:

require 'spec_helper'
describe A_controller do
    before do
         @cat_noise = "Meow"
    end
    it "should do nothing because it's empty and I created it just to test logger!" do
       logger.info "---------- Here comes a cat noise -----------"
       logger.info @cat_noise
       logger.info "-----------There goes a cat noise -----------"
    end
end
Run Code Online (Sandbox Code Playgroud)

And here's my log level configuration for the test environment:

  config.log_level = :info
Run Code Online (Sandbox Code Playgroud)

但是,我与test.log文件中的猫声无关。我可以做?会出现在test.log吗?最好仔细检查工厂之类的……

Sim*_*tti 3

我不确定该logger变量来自哪里。loggerRSpec 块内没有可用的。该代码应该崩溃

NameError:
  undefined local variable or method `logger' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007ffa3208b478>
Run Code Online (Sandbox Code Playgroud)

为了写入 Rails 日志,您应该使用

Rails.logger
Run Code Online (Sandbox Code Playgroud)

因此

require 'spec_helper'
describe A_controller do
    before do
        @cat_noise = "Meow"
    end

    it "should do nothing because it's empty and I created it just to test logger!" do
       Rails.logger.info "---------- Here comes a cat noise -----------"
       Rails.logger.info @cat_noise
       Rails.logger.info "-----------There goes a cat noise -----------"
    end
end
Run Code Online (Sandbox Code Playgroud)