Ser*_*uez 9 rspec ruby-on-rails capybara ruby-on-rails-5 actioncable
我正在使用带有动作电缆的Rails 5 beta 3,这种集成在开发中运行良好,但是当我尝试通过capybara运行功能测试时,它似乎没有达到通道操作.
我正在使用Portergeist并将puma配置为capybara的服务器.我也在使用es5-shim和es6-shim.
有没有其他人经历过这个或知道任何解决方法?
谢谢!
编辑
我使用这个水豚分支在Capybara配置Puma
Capybara.register_server :puma do |app, port, host|
require 'puma'
Puma::Server.new(app).tap do |s|
s.add_tcp_listener host, port
end.run.join
end
Run Code Online (Sandbox Code Playgroud)
我没有在config.action_cable.allowed_request_origins上设置任何内容
Tho*_*ole 12
要使用Capybara测试actioncable,您需要使用多线程Web服务器.由于您在Capybara上使用支持注册命名驱动程序的当前pull请求,因此您需要指定要使用的命名服务器
Capybara.server = :puma
Run Code Online (Sandbox Code Playgroud)
对于没有使用带有命名服务器的capybara分支的人,你可以做到
Capybara.server {|app, port|
require 'puma'
Puma::Server.new(app).tap do |s|
s.add_tcp_listener Capybara.server_host, port
end.run.join
}
Run Code Online (Sandbox Code Playgroud)
从Capybara v2.7.0传递一个块到Capybara::server不推荐使用(commit).
弃用消息:
DEPRECATED: Passing a block to Capybara::server is deprecated, please use Capybara::register_server instead
要注册新的Web服务器(例如puma),请使用:
Capybara.register_server :puma do |app, port, host|
require 'puma'
Puma::Server.new(app).tap do |s|
s.add_tcp_listener host, port
end.run.join
end
Run Code Online (Sandbox Code Playgroud)
链接到文档
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |