2017-10-19 6 views
0

Poltergeist(PhantomJS)でJSテストを実行するドッキングレールアプリ内でActionCable機能をテストする必要があります。Docker内でCapybaraとポルターガイストのActionCableをテストするには?

私はselenium-webdriver、chromedriver、headless chromeを試しました...何も機能しません。

もちろん、カピバラサーバーとしてプーマを設定します。

+0

「動作しない」とはどういう意味ですか?あなたのドライバ設定は何ですか?あなたのカピバラの設定は何ですか?あなたのレール設定は何ですか、テスト環境で処理中のアクションケーブルを実行していますか? –

+0

@ThomasWalpole私はすべての構成を質問に入れようとしています、ごめんなさい。テスト環境で実行中のアクションケーブルを使用するとどういう意味ですか?私はそれをする方法を知らない。 ActionCableは、すべての環境でRedisアダプタで動作します。ご協力ありがとうございました。 –

答えて

0

解決策が見つかりました。問題は、私がoratsを使用してアプリケーションを生成したため、(別のドッカーコンテナとして)Webサーバーから分離したActionCableを事前設定しているためです。

はそれを動作させるために、以下を追加しました:

# rails_helper.rb 
Capybara.server = :puma 

# docker-compose.yml 
services: 
    ... 
    tests: 
    depends_on: 
     - 'redis' 
     - 'postgres' 
     - 'box' 
    build: . 
    volumes: 
     - '.:/app' 
    volumes_from: 
     - box # busybox image to cache bundle install 
    env_file: 
     - '.env' 
    environment: 
     RAILS_ENV: test 
     ACTION_CABLE_MOUNT: '/cable' 
    command: /bin/true 

# config/environments/test.rb 
config.action_cable.url = nil 
config.action_cable.mount_path = ENV["ACTION_CABLE_MOUNT"] 

その後

docker-compose run tests bundle exec rspec 

出来上がりを実行します!

関連する問題