私はTDDでRailsアプリケーションを作成しているので、開発セキュリティトークンとは異なるセキュリティトークンを使用するなど、本番アプリをテストするにはどうすればよいですか、メール構成など、本番環境ですべての構成が正しいことを確認するにはどうすればよいですか? 。
データベースがワイプされるため、本番モードでテストを実行しないでください。
では、本番環境でRailsアプリをテストするにはどうすればよいのでしょうか。
私はTDDでRailsアプリケーションを作成しているので、開発セキュリティトークンとは異なるセキュリティトークンを使用するなど、本番アプリをテストするにはどうすればよいですか、メール構成など、本番環境ですべての構成が正しいことを確認するにはどうすればよいですか? 。
データベースがワイプされるため、本番モードでテストを実行しないでください。
では、本番環境でRailsアプリをテストするにはどうすればよいのでしょうか。
多くの開発者が使用する方法は、ステージと呼ばれる別の環境を作成することです。構成を本番環境と同一にし、本番環境の前にこれにデプロイして、すべてが正しく機能することを確認できます。必要に応じて、ステージングに対して統合テスト/パフォーマンステストを実行できます。
本番構成(config / environment / product.rb)をstage.rbという新しいファイルにコピーしてから、database.ymlにステージデータベースの新しい接続の詳細を入力することを忘れないでください。
テストを実行するときは、RAILS_ENV
にハードコードされているため、常にテスト環境にいtest_helper.rb
ます。設定RAILS_ENV=production
とは、スキーマが開発データベースではなく本番データベースから複製されることを意味します。もちろん、本番サーバーに開発データベースをセットアップすることもできますが、それは意味がないようです。
開発サーバーと本番サーバー(オペレーティングシステム、Webサーバー、データベース、gemなど)にはすべての違いがあるため、開発だけでなくテストスイートを最初に実行しない限り、アプリケーションの展開を快適に行うことはできません。製造。Capistranoの美しく強力なAPIのおかげで、これは公園を散歩して達成することができます。
これがどのように行われるかの例です-
desc "Run the full tests on the deployed app."
task :run_tests do
run "cd #{release_path} && RAILS_ENV=production rake && cat /dev/null > log/test.log"
end
desc "Copy in server specific configuration files"
task :copy_shared do
run <<-CMD
cp #{shared_path}/system/voxway.rb #{release_path}/config &&
cp #{shared_path}/system/database.yml #{release_path}/config
CMD
end
desc "Run pre-symlink tasks"
task :before_symlink, :roles => :web do
copy_shared
run_tests
end