我最近开始使用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
启动服务器。
答案 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