なんちゃってスクリプトエンジンをつくるのはヤメテ!
UnitTestのフレームワークを、アプリケーションレベルまで持ち上げると、そりゃも大変なことになります。
粒度が問題です。
ネジクギレベルの単体テストの積み重ねでアプリやシステム全体の妥当性のチェックなどをおこなうのは、無理があります。
全体レベルの妥当性というのは、サービスレベルです。
例えば、洗濯機であれば、ゴシゴシ洗いコースをスタートさせたときに、2回実行されるはずのすすぎ工程が1回しか実行されなかった、というような話です。
これももちろんねじくぎレベルのバグが原因であるわけですが・・・
原因:モジュールXXXX_XXXXのNo4649の関数の処理1919番に対するUnitTestのCAFEBABEの期待値0に対して実際値2525。
などというテスト結果ではわけわからんのです。
これは実装修正担当者への情報としては的確ですが、製品の品質保証タスクレベルでは無意味です。(そんなレベルほんとにあるの?)
まぁくだらない妄想に基づく前置きはこれくらいにして、アプリレベルでのテスト環境のために必須のスクリプティングについて書いておきましょう。
組み込み用のスクリプトエンジンです。
スクリプトは擬似C/C++で書けるのが一番です。
スクリプトエンジンを動かすほど工数をもらえない場合、ハードコードでもかまわないわけですが、エンジン化すれば、テスト作業の効率が劇的に向上することは言うまでもありません。
そのとき移行がスムーズなのはC/C++ベースであることです。
(おっとJavaは切り捨てたか)
さて、いまどきはLL花盛りなわけで、メジャーなスクリプト言語のエンジンを組み込みたくなる衝動にかられませんか?
perl・・・ソース見たことある?いやになるよ
ruby・・・肥大化しすぎ
php・・・cgi以外ではチョット
というわけで、スポットライトが当たるのは
javascript・・・いいんじゃない!?
というわけでクモザルへどうぞ。
SpiderMonkey (JavaScript-C) Engine
組み込みのためのガイドまであります。これならカンチンプーですね!
しかもCベースのインターフェースです。あとはバイナリ規模でしょう。しかし、スクリプト導入したくなるくらいの規模なら許容でんきるんじゃないですか?
ちなみにC++インタプリタとして有名なのはCINTですが、最近耳にしませんねぇ。 まぁLLに取って代わられたということなんでしょうか。