首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不与action_cable合作的水豚

不与action_cable合作的水豚
EN

Stack Overflow用户
提问于 2016-03-09 16:28:20
回答 2查看 1.6K关注 0票数 9

我使用的是带有动作电缆的Rails 5 beta 3,集成在开发过程中工作得很好,但是当我尝试在capybara上运行一个特性测试时,它似乎没有击中通道动作。

我使用Portergeist并将美洲狮配置为capybara的服务器。而且我用的是es5-shim和es6-shim。

有没有其他人经历过这种情况,或者知道什么解决办法?

谢谢!

编辑

我正在使用这个水豚分支来配置capybara的Puma

代码语言:javascript
复制
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上设置任何东西

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-09 17:51:13

为了用Capybara测试actioncable,您需要使用多线程with服务器。由于在Capybara上使用支持注册命名驱动程序的当前拉请求,因此需要指定要使用的命名服务器

代码语言:javascript
复制
Capybara.server = :puma

对于没有使用命名服务器的capybara分支的人,您可以这样做。

代码语言:javascript
复制
Capybara.server {|app, port| 
  require 'puma'
  Puma::Server.new(app).tap do |s|
    s.add_tcp_listener Capybara.server_host, port
  end.run.join
}
票数 12
EN

Stack Overflow用户

发布于 2016-07-04 14:02:38

从Capybara v2.7.0到Capybara::server的一个街区是不推荐的(commit)。

Deprecation messageDEPRECATED: Passing a block to Capybara::server is deprecated, please use Capybara::register_server instead

要注册新的web服务器(例如puma),请使用:

代码语言:javascript
复制
  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

链接到documentation

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35897189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档