まず、セットアップ...
現在、Ruby 1.8.7 MRI を使用して Mac OS X で Rails 3 アプリケーションを開発しており、MySQL データベースに対してテストとローカル開発を実行しています。私の会社では、dev、tqa、および prod と呼ばれるすべてのアプリケーションに使用する 3 つの「その他の」非ローカル環境があります。これらは、Oracle をバックエンドとする JRuby (1.8.7) を使用して Tomcat で実行されます。
ご覧のとおり、環境はまったく異なります。ローカルに存在しない Oracle/JRuby 環境への展開でいくつかのバグに遭遇しました (Oracle での日付処理やデフォルト スキーマの指定など)。
Cucumber/Webrat/Capybara のようなものをローカルで実行して、アプリで公開されているすべての URL にアクセスし、基本的な機能 (スモーク テスト) が機能していることを確認するのが大好きです。理想的には、すべての URL にヒットし、フォームへのデータの入力やボタンのクリックなどの簡単なことを実行します。
理想的には、dev/tqa にデプロイするときに、ローカル アプリケーションではなくデプロイされたアプリを指すことを除いて、同様のものを実行します。Cucumber は、ローカルで実行されているアプリケーションにヒットするように最適化されているようで、Rails とうまく統合されていますが、完全に「外部」アプリケーションであるものに対して実行することはできません (少なくとも、実際に機能する簡単な方法を見つけることができません)。
また、prod にデプロイするときは、現在の運用データベースの状態を変更しない (つまり、単に URL を取得する) ことを除いて、同様の一連のスモーク テストを実行したいと考えています。
Selenium のようなものを使用できると思いますが、私は単に rake タスクを実行して、Cucumber の場合と同じように結果を取得したいと思っています。
これを行うためのRails/Rubyの方法はありますか、それともwgetまたはSeleniumを使用して独自のソリューションを展開するだけですか?
同様の質問がここで尋ねられました:デプロイ後にアプリケーション内のすべての Web ページを自動的にスモーク テストする
ただし、その質問が私が考えていることとまったく同じかどうかはわかりません。