vbUnit3 Basic + vbUnitFree でタダ(無料)でVB6ベースプロジェクトの自動単体テスト環境を構築してみる

VB6向けのテスティングフレームワークとしてvbUnit3というものがある。
ただ、コアのフレームワーク部分は無償だが*1
IDEと協調してテストの実行等を行うためプラグインは"Professional版"として有償となっている。

残念。

と思ったら、
その有償の機能を独自に実装してvbUnitFreeというオープンソースとして公開してくれている人がいた。
そこで、vbUnit3(無償版) + vbUnitFree で単体テスト環境を構築してみた。

vbUnit3の導入

まず、単体テストフレームワークである vbUnit3 を導入する。

http://www.vbunit.com/Download.htm

上記サイトからダウンロード


ダウンロード時の注意
このとき、真っ先に目に入る"Downlonload Now"のリンクではなく、その下に記述されている以下の一文*2hereのリンクから、vbUnit3 Basic をダウンロードします。

If you don't need the VB6 AddIn that provides the IDE integration of the TestRunner and test results, you can download vbUnit3 Basic (which contains only the vbUnit3 testing framework)
here.

Download

vbUnit3.07.02.Basic.zip

を適当なディレクトリに展開

展開すると以下のようなディレクトリが現れる

  • vbUnit3
    • bin
    • Templates
    • TestVBUnitFramework
    • Tutorial
    • UnsupportedTools
    • vbUnit3TestRunner
    • vbUnitFramework

vbUnit3直下のregister.batを実行してレジストリ登録

Templateのコピー

vbUnit3\Templates\*.cls を [VB6]\Template\Classes にコピー
そして、
vbUnit3\Templates\*.cls 及び *.vbp を [VB6]\Template\Classes にコピー

これで、[ファイル]-[新しいプロジェクト] のテンプレートの中に "vbUnit TestDll"が追加される。

http://gyazo.com/503d22c5c5362f4bf39383414162f907.png

以上で、vbUnit3の準備は完了。

vbUnitFreeの入手

つぎに ユーザーインターフェースとなるvbUnitFreeを導入する
基本的に以下のページの手順に従えばオーケー

とりあえず、やったことを書いておくと...

SourceForgeからバイナリをダウンロード
http://sourceforge.net/projects/vbunitfree/

適当なところに展開して、"register.bat"を実行*3
register.batが成功すると、PATH環境変数にRunVBUnit.exeのパスを登録しろって表示されるので登録しておく。

で、VBIDEを開いて、[アドイン]-[アドインマネージャ...]を開いて、
"vbUnitFree Add-In"を選択して、ロード方法の"ロード/アンロード", "起動時にロード"にチェックをつけて[OK]をクリック。
http://gyazo.com/508f73e1c51d25cdc99e2714c9400b34.png

すると、"VBUnit Test Famework"という画面が開くと思う。
この画面でテストの実行、テスト結果の参照とかが行えるらしい。

これで準備完了。

試してみる

vbUnit3のTutorialにサンプルとなるプロジェクトが入ってるので、ためしにテストを実行してみる。

まず、vbUnit3\Tutorial\Step1\vbUnitTutorial.vbp を開いて [ファイル]-[Tutorial.dllのビルド]を選択、
無事にビルドできたら、

"VBUnit Test Famework"画面の一番左端のアイコンをクリック。

するとTestSuiteを読み込んでプルダウンにテストスィートとして"vbUnitTutorial.vbUnitTutorialSuite"が読み込まれる。
で、"Run in IDE"のチェックをつけて、三角のボタンをクリックするとテストが実行される。

以下のようにテスト結果が"Failure"になったらとりあえずテストが「ちゃんと」失敗したことになる。

http://gyazo.com/067f9c00e7d746554e8f27bda4c13921.png

時間があったら、vbUnit3のチュートリアルについても解説したいと思う。

*1:どうやらフレームワーク部分はGPLらしい

*2:大雑把な訳:もしIDEからテスト実行できるアドインがいらないのなら、ココからvbUnit3 Basicをダウンロードできます。

*3:"pwd"がなんとかでエラーが出るけどとりあえず無視。たぶんコマンドライン実行用のやつなので...