2

私はTDDでRailsアプリケーションを作成しているので、開発セキュリティトークンとは異なるセキュリティトークンを使用するなど、本番アプリをテストするにはどうすればよいですか、メール構成など、本番環境ですべての構成が正しいことを確認するにはどうすればよいですか? 。

データベースがワイプされるため、本番モードでテストを実行しないでください。

では、本番環境でRailsアプリをテストするにはどうすればよいのでしょうか。

4

2 に答える 2

8

多くの開発者が使用する方法は、ステージと呼ばれる別の環境を作成することです。構成を本番環境と同一にし、本番環境の前にこれにデプロイして、すべてが正しく機能することを確認できます。必要に応じて、ステージングに対して統合テスト/パフォーマンステストを実行できます。

本番構成(config / environment / product.rb)をstage.rbという新しいファイルにコピーしてから、database.ymlにステージデータベースの新しい接続の詳細を入力することを忘れないでください。

于 2013-01-17T17:10:39.457 に答える
1

テストを実行するときは、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
于 2013-01-17T09:23:02.737 に答える