Capybara + Rspec でホスト名を動的に書き換えながらテストをしていきたい場合、どのようにするかのメモ。 /etc/hosts
を修正するわけにもいかないし…と路頭に迷っていたらインフラに強いメンバー 306 がアドバイスくれました。ありがとう。
ホスト名の最後に .localhost
をつける
これだけです。こうすればホスト名がなんであろうと 127.0.0.1
のローカルを参照してくれます。最高。
Capybara.app_host
でアクセス先のホストを設定できる。ついでにポートも動的になっているのを合わせておく。
RSpec.describe 'Hoge', type: :system, js: true do
let(:port) { Capybara.current_session.server.port }
it do
Capybara.app_host = "http://hoge.example.com.localhost:#{port}/"
end
end