2016-03-09 20 views
8

Rails 5 beta 3'ü işlem kablosuyla kullanıyorum, entegrasyon geliştirmede gayet iyi çalışıyor, ancak capybara üzerinden bir özellik testi çalıştırmaya çalıştığımda, kanal eylemlerine vurmuyor gibi görünüyor.Capybara action_cable ile çalışmadı

Portergeist'i kullanıyorum ve puma'yı capybara'nın sunucusu olarak yapıyorum. Ayrıca es5-shim ve es6-shim kullanıyorum.

Bunu başkası ya da herhangi bir geçici çözümü biliyor mu?

Teşekkürler!

Düzenleme

Im sen olmak gerekir

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 

Ben Capybara ile test actioncable için config.action_cable.allowed_request_origins

+2

documentation için de capybaras sunucusuna –

+2

olarak puma sizin yapılandırmasını göstermek Lütfen - Ne config.action_cable.allowed_request_origins 'i test yapılandırmanızda –

+0

@TomWalpole I edi'ye ayarladım Soruma bak. Ben Puma :) yapılandırmak için capybara PR kullanıyorum düşünüyorum. Ayrıca, config.action_cable.allowed_request_origins ayarlanmamıştır. –

cevap

11

şey ayarlamadıysanız Capybara içinde Puma yapılandırmak için bu Kapibara dalı kullanılarak çok iş parçacıklı bir web sunucusu kullanarak. adlandırılmış sürücüleri kayıt destekler Kapibara güncel bir çekme isteğini kullandığınız için size yapabileceğiniz adlandırılmış sunucularla Kapibara dalı kullanmayan herkes için

Capybara.server = :puma 

kullanmaya adlandırılmış sunucusu belirtmek gerekir

+0

Tekrar teşekkürler.Senin PR birleştiğinde umut –

+1

Capybara ana geliştiricisi olarak - Ne zaman birleştirileceğini belirleyen ben değilim :) Ben birleştirmeden önce bunun için belgeleri yazmak gerekir –

+1

@ SergioMárquez Ben yanlışlıkla yanlışlıkla soru oy - olabilir Birazcık düzenlerseniz, o oyunu –

6

Capybara v2.7.0'dan bir bloğa Capybara::server geçişi (commit) kullanımdan kaldırılmıştır.

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

(örneğin puma için) yeni web sunucusunu kaydettirmek için kullanın:

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 

Bağlantı

+0

, puma zaten kayıtlı bir web sunucusudur. Capybara.server =: puma işe yarayacak. – efoo