Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

例 : テストの実行

%UnitTest.Manager.RunTest を使用してユニット・テストを実行します。手順は以下のとおりです。

  1. ユニット・テストが含まれたネームスペース (この例では USER) でターミナルを開きます。ターミナルが目的のネームスペースで開かない場合は、set $namespace = "USER" を使用してネームスペースを変更します。

  2. ^UnitTestRoot グローバルの値を、テスト・クラス・ファイルが含まれているディレクトリの親に設定します。

    USER>Set ^UnitTestRoot="c:\unittests"
    
    
  3. メソッド %UnitTest.Manager.RunTest を使用してテストを実行します。

    USER>do ##class(%UnitTest.Manager).RunTest("mytests")
    
  4. 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
    
    
  5. 最後の行は、テスト・レポートの URL を示します。

Note:

このようにして Tests テストを実行した場合、そのテストは完了した後に InterSystems IRIS から削除されます。テストの実行後に VS Code に戻って Tests を表示すると、ファイルがサーバと同期されていないことを示すメッセージが表示されます。クラスを保存またはリコンパイルして、サーバに追加し直すことができます。

クラスを削除しない場合は、RunTest に “/nodelete” 修飾子を指定する必要があります。

USER>do ##class(%UnitTest.Manager).RunTest("mytests","/nodelete")
FeedbackOpens in a new tab