BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース DevverでRubyのテストを速くする

DevverでRubyのテストを速くする

原文(投稿日:2009/08/30)へのリンク

よいテストスィートの重要な特性として、速いことである、速ければ速いほどよいのである。しかし、時間がたつと、テストはどんどん増え、テストが終了するまでだんだん時間がかかる。一つの対策は、いくつものテストを並行に走らせることで、おそらくいくつものシステムの上で(結局、テストは、いかなる相互依存性を持つべきでない)。ここで登場するのが、Devver comes into play: Devver ("developer"のように発音する) で、テストをクラウド上で並行に走らせる。例えば, CruiseControl.rbの結合テストスィートがたった17秒で終わる、一方ローカルマシンでは、59秒かかった。

Devverは、インストール時、gemの形式であり、プロジェクトのRakefileは、新しいタスクを例えば次のように持っている、 rake devver:test この場合、すべてのユニット、機能そして結合テストをクラウド上で実施する。

InfoQは、DevverチームのBenjamin Brinckerhoff氏と話して、どのようにテストを速めることができるのかを聞いた:

我々は、テストを分割して、たくさんのマシン間に分配します。各マシンは、完全なテスト環境をもっていて、テストデータベースやgemを持っています。

では、ユーザがテストを走らせるのに追加のgemが必要になったらどうなります?

問題ありません。大抵のユーザは、Railsのプロジェクトを持ってますから、デフォルトで'rake gems:install'とやって必要なgemをインストールします(各ユーザは各自固有のgemセットを持っています)。もし何らかの理由で、それがうまくいかなかったら、ユーザは、gemをインストールするステップを設定できます。例えば、ユーザは代わりに'geminstaller'を走らせることができます。

テストが速くなるのは、確かに助かりますが、バージョンの違うRubyも並行に走らせられますか?

現在のバージョンでは、Rubyの複数バージョンをサポートしていませんが、しかし将来、サポートする計画でいます、特にその要求がたくさんあればですね。

Devverは、現在ベータバージョンでこの期間は、 無料である。その後、 "オープンソースのプロジェクトについては、Devverは、無料で提供され、オープンソースでなければ、月額の料金がかかります。"と言う。Devverについてさらに詳しく知るにはDevverの知識ベースサイト を見るか、あるいはサインアップするとよい。

この記事に星をつける

おすすめ度
スタイル

BT