2010-12-07 13 views
1

私はさまざまなWeb APIに非常に頼っているシステムを持っています。 API固有のテストを1日に少なくとも1回は実行して、すべてのAPIがまだうまく生きていることを確認したいと思います。私は単体テスト(期待されたデータのためのAPI呼び出しをテストする単純なrbファイル)のセットを持っており、これらを24時間ごとに実行したいと思います。何かが壊れた場合は、行動を起こしたいと思います(メールやSMSなど)。Rubyテストを自動的に実行するにはどうしたらいいですか?

自動Rubyテストを設定して結果を解析するにはどうすればよいですか? .rbファイルを処理するためのcronジョブをセットアップすることはできますか?テストが失敗した場合、私はどのように行動し、プログラムで検出しますか?おそらく、これを処理できるRUbyのための何らかの連続的な統合ソリューションがありますか?

答えて

2

私は、を統合サーバーとして設定しています。これは、Dr. Nicのthis amazing tutorialを使用しています。これはあらかじめ設定されている宝石を通してインストールされ、作業が非常に簡単です。

私はrspecとキュウリを使用しています。ハドソンは私のgitリポジトリで新しいコミットを見るとすべてのテストを実行します。すべてのテストが合格すると、コードがマスターブランチにマージされます。テストに失敗した場合、それは馬を保持し、私に電子メールを送る。

EDIT:

私もアップハドソンのためのChuckNorrisプラグインに10足の親指を与えたいです。アジャイルは、テキサスレンジャーのウォーカーとペアプログラミングよりも良くなりません。

+0

私がハドソンを使ってテストするのが気に入らなかったのは、悪いコードをチェックする可能性でした。私は、コードがコミットされる前にテストに合格していることを知りたいと思います。良いコードベースを持って更新し、それがh-e-double-toothpicksに行くのを見るよりも、何も刺激的ではありません。 –

+2

笑、絶対に正しい。私はコードをgithubの "pre-master"ブランチにプッシュすることでこれを解決しました。ハドソンはこれをチェックし、テストを実行し、すべてがうまくいけば、コードを「マスター」にプッシュします。 (私は今でも唯一の開発者であることを認めなければなりません...とても悲しいです) –

+0

私はそのプレマスタ技術が好きです。私はそれについて考えなかった、コミット全体の同時実行性といつも働くことを解決します - ビルドの問題。 –

0

RubyはTest::Unitビルトイン、RSpecZenTestshouldacucumberとテストを助けるために、おそらくより多くのツールがあります。組み込みであるため、Test :: Unitは多く使われ、他のツールで殴られる対象です。

ZenTestとRSpecは継続的なテストを行うことができます:ファイルを変更して保存すると、ファイルが表示され、テストスイートが実行されます。私はそれが好きなので、すぐに物事の状態を知るからです。

私はキュウリを使用していませんが、残りは使用しています。キュウリは統合テストに重点を置いていると聞きましたが、それは開発者の設計ではなくコメント作成者の気持ちでした。 list of tutorials for cucumberは面白いブラウジングです。特にwebrat: Automated Acceptance Testing with RSpec or Cucumberがあります。

これらは、定期的に実行するためにcronで配線することができます。他のコマンドラインアプリケーションと同じように扱いましょう。

ウェブテストでも結びつけるのは簡単ですが、必要な宝石/モジュールを特定し、グルーコードを書く必要があります。私はMechanizeや他のHTTP宝石とNokogiriのいずれかを使ってページを騙すような獣の必要はありませんでした。