rspec和gem bullet test env失败

时间:2016-05-19 12:44:57

标签: ruby-on-rails ruby rspec rubygems

我希望rspecgem bullet一起找到所有的弱点。 我正在做如下:

Gemfile

group :development, :test do
  gem "bullet"
end

配置/环境/ test.rb

  config.after_initialize do
    Bullet.enable = true
    Bullet.rails_logger = true
    Bullet.raise = true # raise an error if n+1 query occurs
  end

规格/ spec_helper.rb

    if Bullet.enable?
    config.before(:each) do
      Bullet.start_request
    end

    config.after(:each) do
      Bullet.perform_out_of_channel_notifications if Bullet.notification?
      Bullet.end_request
    end
  end

但是当我尝试运行rspec时,我收到错误

% bundle exec rspec
/spec/spec_helper.rb:24:in `block in <top (required)>': uninitialized constant Bullet (NameError)

请帮我解决这个问题

3 个答案:

答案 0 :(得分:3)

在我身边,我需要添加

require "active_record"
require "bullet"

spec/spec_helper.rbenvironments/test.rb

答案 1 :(得分:1)

您需要将跟随字符串移动到spec / rails_helper.rb文件

RSpec.configure do |config|

  ...

  if Bullet.enable?
    config.before(:each) do
      Bullet.start_request
    end

    config.after(:each) do
      Bullet.perform_out_of_channel_notifications if Bullet.notification?
      Bullet.end_request
    end
  end

  ...

end

答案 2 :(得分:0)

我遇到了同样的问题,我发现这是因为在我的 Gemfile 中,bullet 在组 :development 但不在组 :test 中。