Websockets-Rails使" eventmachine没有初始化"测试环境中的错误

时间:2015-05-04 09:17:29

标签: ruby-on-rails testing rspec selenium-webdriver capybara

我最近开始使用websocket-rails gem并且在开发甚至生产中都很好,但是当我运行rspec测试时,我收到以下错误:

Failure/Error: Unable to find matching line from backtrace
 RuntimeError:
   eventmachine not initialized: evma_install_oneshot_timer

该消息似乎出现在我运行的第二个测试中。当我通过将:focus => true添加到测试中然后rspec --tag focus其传递确定时,对它自己运行以前失败的测试。如果我将焦点添加到多个测试中,通常第一个测试通过,第二个测试产生错误。

我正在使用rspec Capybara和Selemium网络驱动程序。我认为这可能与测试中的Web服务器不同,而不是基于事件机的Web服务器"但我不是百分百肯定。我已经尝试将websockets服务器设置为独立,方法是在我的websocket初始化程序config.standalone = true中添加以下内容,然后通过rake websocket_rails:start_server RAILS_ENV=test启动服务器。

1 个答案:

答案 0 :(得分:0)

我通过在spec_helper.rb文件中添加以下内容来配置rspec以使用瘦服务器来解决这个问题:

RSpec.configure do |config|
  Capybara.server do |app, port|
    require 'rack/handler/thin'
    Rack::Handler::Thin.run(app, :Port => port)
  end

  #other configuration here....
end