Can I log to test.log with rspec?
rspec, ruby, ruby-on-rails
Solution
I'm not sure where that `logger` variable comes from. There is no `logger` available inside an RSpec block. The code should crash with
NameError:
undefined local variable or method `logger' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007ffa3208b478>
In order to write to the Rails log, you should use
Rails.logger
Thus
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
Problem
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 ``` And here's my log level configuration for the test environment: ``` config.log_level = :info ``` However, I'm getting nothing to do with cat noises in my `test.log` file. Should I be? Would it appear in `test.log`? It would be good to double check factories and the like...