解決策が見つかりました。問題は、私が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
出来上がりを実行します!
「動作しない」とはどういう意味ですか?あなたのドライバ設定は何ですか?あなたのカピバラの設定は何ですか?あなたのレール設定は何ですか、テスト環境で処理中のアクションケーブルを実行していますか? –
@ThomasWalpole私はすべての構成を質問に入れようとしています、ごめんなさい。テスト環境で実行中のアクションケーブルを使用するとどういう意味ですか?私はそれをする方法を知らない。 ActionCableは、すべての環境でRedisアダプタで動作します。ご協力ありがとうございました。 –