例 : テストの実行
%UnitTest.Manager.RunTest を使用してユニット・テストを実行します。手順は以下のとおりです。
-
ユニット・テストが含まれたネームスペース (この例では USER) でターミナルを開きます。ターミナルが目的のネームスペースで開かない場合は、set $namespace = "USER" を使用してネームスペースを変更します。
-
^UnitTestRoot グローバルの値を、テスト・クラス・ファイルが含まれているディレクトリの親に設定します。
USER>Set ^UnitTestRoot="c:\unittests"
-
メソッド %UnitTest.Manager.RunTest を使用してテストを実行します。
USER>do ##class(%UnitTest.Manager).RunTest("mytests")
-
InterSystems IRIS は、テスト・ファイルからテスト・クラスをロードし、そのクラスをコンパイルし、テストを実行し、テスト・コードをサーバから削除した後、ターミナルにレポートを出力します。
=============================================================================== Directory: C:\unittests\mytests\cls\MyPackage\ =============================================================================== mytests\cls\MyPackage begins ... Load of directory started on 07/05/2022 11:09:35 '*.xml;*.XML;*.cls;*.mac;*.int;*.inc;*.CLS;*.MAC;*.INT;*.INC' Loading file C:\unittests\mytests\cls\MyPackage\MyPackage.Tests.cls as udl Compilation started on 07/05/2022 11:09:35 Compiling class MyPackage.Tests Compiling routine MyPackage.Tests.1 Compilation finished successfully in 0.672s. Load finished successfully. MyPackage.Tests begins ... TestAdd() begins ... AssertEquals:Test Add(2,2)=4 (passed) AssertNotEquals:Test Add(2,2)'=5 (passed) LogMessage:Duration of execution: .000356 sec. TestAdd passed MyPackage.Tests passed mytests/cls/MyPackage passed Use the following URL to view the result: http://172.30.160.1:52797/csp/sys/%25UnitTest.Portal.Indices.cls?Index=3&$NAMESPACE=USER All PASSED
-
最後の行は、テスト・レポートの URL を示します。
このようにして Tests テストを実行した場合、そのテストは完了した後に InterSystems IRIS から削除されます。テストの実行後に VS Code に戻って Tests を表示すると、ファイルがサーバと同期されていないことを示すメッセージが表示されます。クラスを保存またはリコンパイルして、サーバに追加し直すことができます。
クラスを削除しない場合は、RunTest に “/nodelete” 修飾子を指定する必要があります。
USER>do ##class(%UnitTest.Manager).RunTest("mytests","/nodelete")