株式会社クリアコード > ククログ

ククログ


GaUnit 0.1.6リリース

GaUnit 0.1.6がリリースされました。 ([アナウンス]|[ダウンロード])

GaUnitは便利なSchemeインタプリタであるGauche用のxUnitベースの単体テストフレームワークです。0.1.6ではGauche標準のgauche.testモジュール(リンク切れしそうなリンク)用に書かれたテストを実行することができるようになりました。(簡単なものであれば)

gauche.test互換レイヤーの実装

gauche.testのテストを実行するために、テストスクリプトを読み込み、GaUnitが理解できるようにS式を変形します。変形されたS式はGaUnitが提供するgauche.test互換APIが使える無名モジュール内で評価され、GaUnitのテストとして認識されるようになります。

SchemeではマクロでS式を変換するということはよく行われます。もし、それで十分でない場合は上記のように、スクリプト自体をS式として読み込んで、変換して、評価、ということも行うことができます。これは、S式がプログラムで扱いやすいためにできると言えるでしょう。他の言語、例えばJavaScriptでは、プログラムを変換するためにtoSourceしたものをreplaceしてevalするということが行われることもあるようです。

ただ、非常に多くの場合はこのような方法は必要ありません。今回は(use gauche.test)をどうしてもうまく扱えなかったのでこの方式をとっています。

ファイルの内容をS式のリストに変換

Gaucheスクリプトを書くときのちょっとした豆知識を紹介しておきます。

Gaucheスクリプトの内容をS式のリストとして読み込む処理は以下のようになります。ファイル先頭のcoding: utf-8などのような文字エンコーディング指定を考慮するためにopen-coding-aware-portをはさむことを忘れてはいけません。

1
2
3
4
(define (file->sexp-list file)
  (call-with-input-file file
    (lambda (input)
      (port->sexp-list (open-coding-aware-port input)))))

まとめ

GaUnit 0.1.6ではgauche.testのテストも実行できるようになったため、既存のgauche.testのテスト(大事な資産)を捨てることなくGaUnitに移行できるようになりました。これを機にGaUnitも試してみてはいかがでしょうか。

gauche.testであれGaUnitであれ、自動化されたテストがあるということは安心できるものです。

タグ: テスト
2008-10-23

«前の記事: Rabbit 0.5.8リリース 最新記事 次の記事: Ruby-GetText-Packageとrake gems:installの共存»
タグ:
年・日ごとに見る
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|