VBS Testerの使い方
テスト結果をメールで受信する場合、Address.iniをテキストエディタで開き、当該ファイルにテスト結果を送信したいメールアドレスを登録します。
登録は、つぎのようにメールアドレスを1行ずつ入力します。
mail_address1@gmail.com mail_address2@gmail.com mail_address3@gmail.com
「VBS Tester」のメール送信機能は、メーラーがOutlookの場合のみ有効です。もし、Outlook以外のメーラーを使用されている場合、もしくはメール送信機能が不要であれば、VbsTester.vbsを開き、SendLog()メソッドおよびDeleteLog()メソッドを削除してください。
Private Sub SendLog() Dim olApp Set olApp = CreateObject("Outlook.Application") Dim myItem Set myItem = olApp.CreateItem(0) Set olApp = Nothing myItem.To = Replace(ReadText(VBS_TESTER_ADR_NAME), vbCrLf, ";") myItem.Subject = "From VbsTester" myItem.Body = ReadText(VBS_TESTER_LOG_NAME) myItem.Send End Sub Private Sub DeleteLog() Dim fileObj Set fileObj = fso.GetFile(VBS_TESTER_LOG_NAME) fileObj.Delete Set fileObj = Nothing End Sub
DeleteLog()メソッドを削除すると、VbsTester.vbsと同じディレクトリに、VbsTester.logというテキストファイルでテスト結果を出力します。
次に、テストケースを作成します。
「VBS Tester」では、拡張子が「.inc」となっているファイルをテストケースが記述されているファイルとして認識します。同梱されているTestSample1.incやTestSample2.incを参考にテストケースを作成してください。修正する箇所は、ExecuteText()メソッドのみです。
Option Explicit Class Tester Private mLog Private Sub Class_Initialize() mLog = "" End Sub Public Property Get Log() log = mLog End Property Private Property Let Log(ByVal sLog) mLog = sLog End Property Private Function Include(ByVal fileName) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Include = fso.OpenTextFile(fileName, 1, False).ReadAll() Set fso = Nothing End Function Private Sub Test(ByVal bIdn, ByVal msg) Dim sLog If (bIdn) Then sLog = msg & " ---> OK" Else sLog = msg & " ---> NG" End If If Not (Log = "") Then Log = Log & vbCrLf End If Log = Log & sLog End Sub '************************************************************ ' Test Pattern '************************************************************ Public Sub ExecuteTest() Execute Include(".\sample_source\Sample1.vbs") '+++ Calc1 +++ Call Test(Calc1(1, 2) = 3, "Calc1") Call Test(Calc1(3, 4) = 7, "Calc1") Call Test(Calc1(5, 6) = 7, "Calc1") End Sub End Class
ExecuteTest()メソッド内の1行目で、テストしたいVBSモジュールを指定します。
Execute Include(Extension)
- Extension:VBSモジュールのパス
次に、メソッドのテストケースを記述します。 テストケースは、Test()メソッドで記述します。
Test()メソッドは、次のように指定します。
Test(TestCase, TestCaseName)
- TestCase:テストケース
- TestCaseName:テストケース名
Test()メソッドは、パラメータに指定されたテストケースが真(True)となるように記述します。
このサンプルをみると、「sample_source」フォルダにSample1.vbsというVBSがあります。このVBSには、Calc1()というメソッドがあります。Calc1()メソッドは、パラメータに指定された2つの値を加算します。
ExecuteTest()メソッド内のテストケースでは、
Call Test(Calc1(1, 2) = 3, "Calc1") Call Test(Calc1(3, 4) = 7, "Calc1") Call Test(Calc1(5, 6) = 7, "Calc1")
となっていますので、1行目は「1+2=3」で真、2行目も「3+4=7」で真(True)ですが、3行目は「5+6=7」となっていますので、偽(False)です(テストケースが正しいのなら、Calc1()メソッドは、「1+2=3」「3+4=7」「5+6=7」となるメソッドでなくてはならない)。
テストファイルに記述されているテストケースが、VbsTester.vbsの実行によってテストされます。
件名: From VbsTester 本文: Calc1 ---> OK Calc1 ---> OK Calc1 ---> NG Calc2 ---> OK Calc2 ---> OK Calc2 ---> NG
5. まとめ
VBScriptは、定型業務を自動化するバッチ処理として使用されることが多く、規模の大きい開発に使用されることは稀でしょう。そのため、わざわざテストケースを書くほどのことではないかも知れません。しかし、大勢の人の目に留まる機会があれば、きっと誰か使ってくださり貴重なフィードバックもいただけるのではないかと思い、今回紹介させていただきました。
拙いツールではありますが、ご意見・ご要望がありましたら、「フリープログラミング団体 いかちソフトウェア」までご一報いただければ幸いです。