水豚不与 action_cable 一起工作
Capybara not working with action_cable
我正在使用带动作电缆的 Rails 5 beta 3,集成在开发中运行良好,但是当我尝试 运行 通过水豚进行功能测试时,它似乎没有点击频道操作。
我正在使用 Portergeist 并将 puma 配置为水豚的服务器。我也在使用 es5-shim 和 es6-shim。
有没有其他人遇到过这种情况或知道任何解决方法?
谢谢!
编辑
我正在使用这个 capybara 分支在 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
我没有在 config.action_cable.allowed_request_origins
上设置任何东西
要使用 Capybara 测试 actioncable,您需要使用多线程网络服务器。由于您在支持注册命名驱动程序的 Capybara 上使用当前拉取请求,因此您需要指定要使用的命名服务器
Capybara.server = :puma
对于不使用带有命名服务器的水豚分支的任何人,您可以这样做
Capybara.server {|app, port|
require 'puma'
Puma::Server.new(app).tap do |s|
s.add_tcp_listener Capybara.server_host, port
end.run.join
}
从 Capybara v2.7.0 开始,将块传递给 Capybara::server
已被弃用 (commit)。
Deprecation message:
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
Link 到 documentation
我正在使用带动作电缆的 Rails 5 beta 3,集成在开发中运行良好,但是当我尝试 运行 通过水豚进行功能测试时,它似乎没有点击频道操作。
我正在使用 Portergeist 并将 puma 配置为水豚的服务器。我也在使用 es5-shim 和 es6-shim。
有没有其他人遇到过这种情况或知道任何解决方法?
谢谢!
编辑
我正在使用这个 capybara 分支在 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
我没有在 config.action_cable.allowed_request_origins
上设置任何东西要使用 Capybara 测试 actioncable,您需要使用多线程网络服务器。由于您在支持注册命名驱动程序的 Capybara 上使用当前拉取请求,因此您需要指定要使用的命名服务器
Capybara.server = :puma
对于不使用带有命名服务器的水豚分支的任何人,您可以这样做
Capybara.server {|app, port|
require 'puma'
Puma::Server.new(app).tap do |s|
s.add_tcp_listener Capybara.server_host, port
end.run.join
}
从 Capybara v2.7.0 开始,将块传递给 Capybara::server
已被弃用 (commit)。
Deprecation message:
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
Link 到 documentation