BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース オートテスト-隠されたツールの宝石

オートテスト-隠されたツールの宝石

Rubyコミュニティの秘密の一つは、なぜたくさんのデベロッパ達がIDE上でテキストエディタを好むのかということである。その理由の一つはRuby内で書かれているツールのグループである。それはコーディングの地道な作業を大幅に自動化するのに役立つのである。これらのツールのいくつかは最近Pat Eyler氏のブログ上のポールで紹介されている(source)

これらのツールの一つはZentest(サイト・英語)パッケージに含まれているオートテストである。そのインストールは至ってシンプルなものである。
gem install zentest 
Zentestがそれらでユニットテストとあなたのコードを同期化するのを助ける一方、オートテストは確実にある一つ事をする。一旦始まったらファイルが保存されるた度にテストを再実行するのだ。保存されたファイルの中でコードに対応するテストのみを再実行するところが賢明なのである。

オートテストのクリエーターであるEric Hodel氏はオートテストを行うための仕事のやりかたを説明した(source)
オートテストを書く前に私は構文的に正しいきめの細かいセーブを作っていたのです。どのテストを実行するか選ぶ必要がなくなるのでテスト実行を自動化するためにオートテストを書いたのです。変更点はとても少ないのでコマンドラインを編集するのにはほとんど時間を費やしませんでした。
これはテストを実行するにおいてもう一つの利点を意味している。コードは保存の度にロードされチェックされる。これをコード上でシンタックスとセマンティックチェッカーのような静的アナライザーを増やしたり、保存する度に動かしている現代のJava IDEと比較してみて欲しい。デベロッパたちは未だ好みのエディタに依存している一方、同じくらいのレベルの自動チェックがAutotestでは成されて いる。

プラグインインターフェースもまたオートテストの拡張を可能にする。プロジェクトルーツに ".autotest"ファイルを作るだけでいいのである。これにおいて既存のプラグインを要するかもしくは多様なフック用にカスタムハンドラを書いて欲しい。
Autotest.add_hook :red { |autotest|   p "Failures!" } 
最初のパラメータはこれがフックするフックの名前である。このケースにおいてはテスト障害である。このコードはテストが通らなかった場合に単純に "Failures!"をプリントアウトする。これはまたテスト結果によって、もしくは単純に保存の度に他のツールの呼び出しを可能にする。Emacsを伴う統合用のプラグインか、もしくはハウリング(source)が入手可能である。

あなたはオートテストを以前聞いたことがあるだろうか?そしてそれを使おうと考えているだろうか?

原文はこちらです:http://www.infoq.com/news/2007/12/autotest-tool

この記事に星をつける

おすすめ度
スタイル

BT