- capybaraで利用するテストサーバは変更可能
- デフォルトだとwebrickだったはず?
- (追記)capybara3からpumaになっていた
- capybara/UPGRADING.md at master · teamcapybara/capybara
- Railsのsystem testだとpuma
- unicornをproductionで使っているのであれば、unicornにしたほうがいいのでは?と思うタイミングがありやってみた
やり方
- CapybaraでUnicornを使う - Qiita の設定をベースにゴニョゴニョするとできる
- 修正内容貼りたかったけどどこかに行ってしまった><
問題点
- feature spec(system spec)でモックを使うことができないので使いづらい
- puma(やwebrick)はテストのプロセスと同じプロセス内のスレッドで利用するので、モックの定義がテストサーバにも反映される
- unicornは、最低でも2プロセスになる(マスタプロセスとワーカプロセス)
- ワーカプロセスはテストのプロセスとは独立しているので、テストのプロセス内でモックを定義してもテストサーバには反映されない
まとめ
capybaraでunicornを使うには覚悟が必要