2017-11-08 12 views
1

私はRailsでJSON APIサービスを構築しており、本番環境で実行するためにdockerを使用しています。私のDockerfileでは私が使用したい:同じRpecテストでRailsプロジェクトのプロダクションビルドをテストする方法は?

RUN bundle install --without development test 

私は少し心配している事はGemfileが:developmentまたは:test本当に不可欠なものが含まれているかもしれないということです。テストはうまく渡すことだろうが、生産は本当に壊れただろう。この場合、

# Example situation which works in development and tests but fails in production 
group :development, :test do 
    gem 'rails', '~> 5.1.4' 
end 

:ここ

は不自然な例Gemfileです。

私はプロダクションコンテナを構築し、それをドッカーで実行し、テスト用にポートを公開することを考えていました。そのコンテナに対して同じRspec type: requestテストを使用するのはすばらしいことです。テストランナーとレールサーバーは、同じテストデータベースを共有できます。

私のRspecテストでは、独自のサーバーを起動せず、既にバックグラウンドで実行されている別のサービスを使用することができますか?

答えて

0

過去に行ったことは、ドッキング用のコンテナを作成して実行し、10秒待ってから、アプリケーションサーバーの成功メッセージのログをgrepすることです。

通常成功メッセージのためにgrepをは十分です - あなたは、単純なスモークテストを行うことができますが、その後、あなたはカナリアが展開するの道を行っている(結構です、それは...ちょうど別の考え方です)

関連する問題