進行中のベータリリース​: クラウド IDE は進行中のベータリリースです​。ベータ状態での Anypoint Code Builder の使用には、IDE で入手できる、該当するベータサービス契約条件が適用されます。

MUnit を使用したプロジェクトのテスト

logo cloud IDE Cloud IDE

logo desktop IDE Desktop IDE

Anypoint Code Builder で実装プロジェクトとインテグレーションプロジェクトの MUnit テストを実行、変更、作成します。MUnit テストファイルが含まれるプロジェクトをインポートします。

MUnit は、​「MUnit の概要」​で説明されているように Mule アプリケーションで単体テストを作成および実行するための MuleSoft 単体テストフレームワークです。

Anypoint Code Builder には、テストを実行できる ​[Testing (テスト)]​ パネルが用意されています。テストスイートは、​[Explorer]​ のプロジェクトディレクトリ ​/src/test/munit​ 内にもあります。IDE には、テストとログの状況が表示される [Testing Results (テスト結果)] パネルもあり、実行したテストの状況がわかります。

Anypoint Code Builder でサポートされている MUnit 機能については、​「Anypoint Code Builder リリースノート」​を参照してください。​『Anypoint Studio』​ では、MUnit テスト機能もサポートされています。

Anypoint Extension Pack に含まれる Anypoint Code Builder - MUnit 拡張機能では、Anypoint Code Builder の MUnit 機能がサポートされています。拡張機能については、​「Anypoint Extension Pack」​を参照してください。

始める前に

Anypoint Code Builder でサポートされている MUnit 機能については、『Anypoint Code Builder Release Notes』を参照してください。Anypoint Studio では、すべての MUnit 機能を使用してテストを行うことができます。

MUnit 機能へのアクセスを設定する

MUnit リソースをプロジェクトで使用できるようにします。このプロセスは、Mule Enterprise Edition (EE) ライセンスを持っているかどうかによって異なります。

  • Maven 設定を定義する (ライセンスのあるアクセス)​:

    Mule EE ライセンス (​トライアルライセンスではない​) を持っている場合、Maven ファイル ​settings.xml​ で ​server​ ログイン情報設定を定義します。

  • Maven 設定を定義する (ライセンスのないアクセス)​:

    Mule EE ライセンスを​持っていない​場合や、ライセンスがトライアルライセンスである場合、プロジェクトの ​mule-artifact.json​ を設定します。このオプションでは、Mule Kernel (以前の名称は Mule Community Edition) を使用してテストを実行します。

Maven 設定を定義する (ライセンスのあるアクセス)

Mule EE ライセンス (​トライアルライセンスではない​) を持っている場合、Maven ファイル ​settings.xml​ で ​server​ ログイン情報を設定します。

Enterprise ライセンスを入手またはインストールするには、​「Enterprise ライセンスのインストール」​を参照してください。MuleSoft ユーザーであり、 MuleSoft Enterprise リポジトリLeaving the Site​にアクセスするためのログイン情報を持っていない場合は、サポートに連絡して、Nexus Enterprise ログイン情報を要求してください。

  1. 通常は ​{user.home}/.m2/​ にある ​settings.xml​ に移動します。

    settings.xml​ が存在しない場合は作成してください。

  2. <servers></servers>​で各自の Mule ユーザー名とパスワードを使用して ​server​ 設定を指定します。

    <server>
      <username>yourMuleUsername</username>
      <password>yourMulePassword</password>
      <id>releases-ee</id>
    </server>
    xml
  3. <repositories></repositories>​で ​repository​ 設定を指定します。

    <profiles>
    ...
        <profile>
    
            <id>Mule</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <id>MuleRepository</id>
                    <name>MuleRepository</name>
                    <url>https://repository.mulesoft.org/nexus-ee/content/repositories/releases-ee/</url>
                    <layout>default</layout>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
    
        </profile>
    ...
    </profiles>
    xml

Maven 設定を定義する (ライセンスのないアクセス)

Mule Enterprise Edition (EE) ライセンスを所有していない場合や、ライセンスがトライアルライセンスである場合、プロジェクトの ​mule-artifact.json​ を設定します。

  1. [Explorer]​ でプロジェクトを開きます。

  2. プロジェクトの ​mule-artifact.json​ ファイルで、キー-値ペア ​"requiredProduct" : "MULE"​ を既存の設定に追加します。例:

    {
        "minMuleVersion": "4.6.2",
        "javaSpecificationVersions": [
            "11"
        ],
        "requiredProduct" : "MULE"
    }

Maven 設定についての詳細は、『Anypoint Code Builder の Maven 設定ファイル』を参照してください。

MUnit タスクとワークフロー

一般的なワークフローには、次の 1 つ以上のステップが含まれます。

プロジェクトにテストが含まれていない場合、Anypoint Code Builder では次のタスクがサポートされています。

MUnit テストを開く

[Testing (テスト)]​ パネルまたは ​[Explorer]​ からテストスイート XML を開きます。

  • [Testing (テスト)] パネル​ - IDE のアクティビティバーから ​[Testing (テスト)]​ パネルを開きます。

    1. MUnit テストスイートが含まれるプロジェクトを開きます。

    2. ​ (​[Testing (テスト)]​) をクリックして、​[Testing (テスト)]​ パネルを開きます。

    3. スイートまたはテスト名をクリックするか、その上にマウスポインターを置き、​​ (​[Go to test (テストに移動)]​) または強調表示された ​​ (​[Go to test (テストに移動)]​) をクリックし、テストが含まれる XML ファイルを開きます。

      テスト名をクリックしても、XML ファイルが開きます。

  • Explorer​ - ​[Explorer]​ から、プロジェクトディレクトリで MUnit テストスイートファイルを見つけます。

    1. MUnit テストスイートが含まれるプロジェクトを開きます。

    2. アクティビティバーで、​​ (​[Explorer]​) をクリックします。

    3. src/main/test/munit​ に移動します。

    4. テストスイート XML ファイルをクリックして、スイートのテストを表示します。

MUnit テストを実行する

次のいずれかのオプションを使用して MUnit テストを実行します。

テストを実行すると、テストビルドが実行され、[Terminal (ターミナル)] にテストの進行状況が表示されます。すべてのテストが正常に実行されると、ビルドは成功します。それ以外の場合、ビルドは失敗します。

IDE の ​[Testing (テスト)]​ パネル、​[Terminal (ターミナル)]​、​[Test Results (テスト結果)]​ パネルにテストの結果が表示されます。​[Test Results (テスト結果)]​ パネルからタイムスタンプのあるログを利用することもできます。結果はいつでもクリアできます。

[Testing (テスト)] パネルからテストを実行する

[Testing (テスト)]​ パネルから、すべてのテスト、スイートのすべてのテスト、1 つのテストを実行できます。​[Testing (テスト)]​ パネルには、プロジェクトのすべての MUnit テストスイートがリストされます。

テストを実行する手順は、次のとおりです。

  1. MUnit テストスイートが含まれるプロジェクトを開きます。

    テストスイートを確認するには、MUnit テストを開くを参照してください。

  2. アクティビティバーから、​​ (​[Testing (テスト)]​) をクリックして、​[Testing (テスト)]​ パネルを開きます。

    アイコンが表示されていない場合、アクティビティバー内をクリックして ​[Testing (テスト)]​ を選択し、アイコンを表示します。

  3. [Testing (テスト)]​ パネルから、3 つのレベルのいずれかでテストを実行します。

    "[Testing (テスト) パネル"]

    デバッグ機能を使用して/使用しないでテストを実行します。XML にブレークポイントが含まれていて、デバッグすることを選択した場合、ブレークポイントでテストの実行が停止します。デバッグについては、デバッグモードで MUnit テストを実行するを参照してください。

    1 すべてのスイート: すべてのスイートのすべてのテストを実行するには、​[Run Tests (テストを実行)]​、​[Debug Tests (テストをデバッグ)]​、または ​[Run Tests with Coverage (カバー率を使用してテストを実行)]​ アイコンをクリックします。 右クリックしメニューから同じオプションを選択できます。
    2 スイート: 1 つのスイートのすべてのテストを実行するには、スイートにマウスポインターを置くか、それをクリックし、​[Run Test (テストを実行)]​、​[Debug Test (テストをデバッグ)]​、または ​[Run Tests with Coverage (カバー率を使用してテストを実行)]​ アイコンをクリックします。 右クリックしメニューから同じオプションを選択できます。
    3 テスト: 1 つのテストを実行するには、テストスイートのテストにマウスポインターを置くか、それをクリックし、​[Run Test (テストを実行)]​、​[Debug Test (テストをデバッグ)]​、または ​[Run Tests with Coverage (カバー率を使用してテストを実行)]​ アイコンをクリックします。

    右クリックしメニューから同じオプションを選択できます。

  4. テストを監視して、テスト結果を確認します。

    • [Testing (テスト)]​ パネルと XML:

      次の例では、実行中のテストが表示されています。

      "[Test (テスト) パネルと XML の実行中のテスト"]

      テストの実行後、パネルと XML に結果が表示されます。

    • Terminal (ターミナル):

      次の例は、実行されて失敗しているテストの進行状況を示しています。

  5. テスト結果で失敗が示されている場合は、​テストエラーを修正する​に移動します。

テスト結果をクリアするには、テスト結果をクリアするを参照してください。

MUnit 設定 XML ファイルからテストを実行する

デバッグ機能を使用して/使用しないでテストを実行します。XML にブレークポイントが含まれていて、デバッグすることを選択した場合、ブレークポイントでテストの実行が停止します。デバッグについては、デバッグモードで MUnit テストを実行するを参照してください。

テストスイート XML からテストを実行する手順は、次のとおりです。

  1. [Testing (テスト)]​ パネルから、プロジェクトのテストスイート XML ファイルを開きます。

    [Testing (テスト)]​ パネルから開く方法に関する指針は、​MUnit テストを開く​を参照してください。

  2. テストスイート XML ファイルの 1 つのテストまたはすべてのテストを実行します。

    テストスイート XML のテストオプション

    • テストスイート XML の 1 つのテストを実行する手順は、次のとおりです。

      1. テスト (​munit:test​) の XML が含まれる行にカーソルを置きます。

        たとえば、次の例のような XML の行です。

        <munit:test name="test-02-suite1">
          <munit:validation>
            <munit-tools:assert-equals actual='#["that"]' expected='#["this"]' />
          </munit:validation>
        </munit:test>
        xml
      2. 右クリックして、次のいずれかのオプションを選択します。

        • Run Test at Cursor (カーソル位置でテストを実行)

        • Debug Test at Cursor (カーソル位置でテストをデバッグ)

        • Run Test at Cursor with Coverage (カバー率を使用してカーソル位置でテストを実行)

          これらのメニュー項目が表示されていない場合、*[Testing (テスト)]* パネルで または強調表示された (*[Go to test (テストに移動)]*) から XML ファイルを開いてください。

    • テストスイート XML のすべてのテストを実行する手順は、次のとおりです。

      1. XML ファイルにカーソルを置きます。

      2. 右クリックして、次のいずれかのオプションを選択します。

        • Run Tests in Current File (現在のファイルでテストを実行)

        • Debug Tests in Current File (現在のファイルでテストをデバッグ)

        • Run Tests with Coverage in Current File (現在のファイルでカバー率を使用してテストを実行)

          これらのメニュー項目が表示されていない場合、*[Testing (テスト)]* パネルで または強調表示された (*[Go to test (テストに移動)]*) から XML ファイルを開いてください。

  3. [Testing (テスト)]、[Terminal (ターミナル)]、[Testing Results (テスト結果)] パネルで実行中のテストの状況を確認します。​​を参照してください。

テスト結果をクリアするには、テスト結果をクリアするを参照してください。

MUnit 起動設定を使用してテストを実行する

[Run and Debug (実行とデバッグ)] パネルから MUnit 起動設定を使用して MUnit テストを実行します。

MUnit 起動設定を作成して実行します。

  1. [Run and Debug (実行とデバッグ)] パネルを開きます。

  2. 起動設定を ​launch.json​ に追加します。

    1. ​ (歯車アイコン) をクリックして、​[launch.json]​ タブを開きます。

      デフォルト設定は次のようになります。

      {
          "version": "0.2.0",
          "configurations": [
            {
              "type": "mule-xml-debugger",
              "request": "launch",
              "name": "Debug Mule Application",
              "mule.project": "${workspaceFolder}",
              "mule.runtime.args": "${config:mule.runtime.defaultArguments}"
            }
          ]
        }
      json
    2. launch.json​ ファイルで、配列の最初のオブジェクトの後にカンマを追加し、Ctrl+Space を押してオートコンプリートメニューを開き、​[MUnit Debug Launch (MUnit デバッグ起動)]​ を選択して MUnit 起動設定を追加します。例:

      オートコンプリートメニューからの MUnit の起動設定の追加

      この操作により、​[Munit Debug Tests (Munit テストデバッグ)]​ という名前の新しい JSON オブジェクトがファイルに追加されます。例:

      {
          "version": "0.2.0",
          "configurations": [
            {
              "type": "mule-xml-debugger", (1)
              "request": "launch",
              "name": "Debug Mule Application",
              "mule.project": "${workspaceFolder}",
              "mule.runtime.args": "${config:mule.runtime.defaultArguments}"
            },
            {
              "type": "munit-xml-debugger", (2)
              "request": "launch",
              "name": "Munit Run Tests",
              "mule.project": "${workspaceFolder}",
              "munit.runtime.args": "${config:munit.runtime.defaultArguments}",
              "munit.runtime.debugger.version": "${config:munit.runtime.debugger.version}",
              "munit.debug": "false"
            }
          ]
        }
      JSON
      1 [Debug Mule Application (Mule アプリケーションをデバッグ)]​ という名前の標準デバッガーのランチャー。
      2 [Munit Run Tests (Munit テスト実行)]​ という名前の MUnit デバッガーのランチャー。
  3. 設定を ​launch.json​ に保存します。

  4. [MUnit Debug Tests (Munit テストデバッグ)]​ 起動設定から MUnit テストを実行します。

    1. [Run and Debug (実行とデバッグ)] パネルの起動メニューから ​[MUnit Debug Tests (Munit テストデバッグ)]​ を選択します。例:

      "起動メニューからの <strong>[MUnit Debug Tests (Munit テストデバッグ) の選択"]

    2. [Run an Debug]​ パネルの ​​ ([launch (起動)]) をクリックして、​[MUnit Debug Tests (Munit テストデバッグ)]​ を実行します。

  5. MUnit テストが実行されていることを確認します。​​を参照してください。

デバッグモードで MUnit テストを実行する

テストまたは Mule アプリケーションの XML にブレークポイントを追加したら、デバッグモードでテストを実行します。Mule がブレークポイントに達したら、[Run and Debug (実行とデバッグ)] パネルで変数を確認できます。

  1. MUnit テストスイートが含まれるプロジェクトを開きます。

  2. Mule アプリケーションまたはテストスイートの XML にブレークポイントを追加します。

    ブレークポイントと Mule イベントに関する指針は、『Mule アプリケーションのデバッグ』を参照してください。

  3. デバッグコマンドで次のいずれかのオプションを使用してテストを実行します。

  4. ビルドプロセスがブレークポイントに達したら、アクティビティバーから ​​ (​[Run and Debug (実行とデバッグ)]​) をクリックして変数 (Mule イベント変数やテストパラメーターを含む) を確認します。例:

    ブレークポイントでテストをデバッグした後の変数

  5. データを調べて、問題に対処します。

デフォルトでは、タイムアウト期間を過ぎると実行中のテストは失敗します。デバッグセッションがテストのブレークポイントに達したら、テストとビルドはタイムアウトで失敗します。​「タイムアウト属性のテスト」​を参照してください。

カバー率を使用して MUnit テストを実行する

カバー率を使用してテストを実行し、一連の MUnit テストによって Mule アプリケーションがどの程度実行されるかを測定します。

  1. MUnit テストスイートが含まれるプロジェクトを開きます。

  2. カバー率で次のいずれかのオプションを使用してテストを実行します。

  3. テストスイートの実行後、次のいずれかのオプションを使用してカバー率の結果を表示します。

    • アクティビティバーで、​​ (​[Testing (テスト)]​) をクリックして、​[Testing (テスト)]​ パネルを開きます。​[Test Coverage (テストカバー率)]​ パネルには、ディレクトリとファイルのカバー率が表示されます。

      カバー率を使用してテストを実行した後のテストカバー率パーセント

    • アクティビティバーで、​​ (​[Explorer]​) をクリックします。ディレクトリとファイルのカバー率が表示されます。

数値とグラフィックのパーセントは両方とも、MUnit テストによって実行されたイベントプロセッサーのパーセントを示します。

テストエラーを修正する

テストを実行​したら、エラーを修正します。

  1. [Testing (テスト)]​ パネルから、失敗したテストの名前をクリックして、XML のテストエラーを確認します。

    XML の例のエラーでは、​java.lang.AssertionError​ というエラーが識別されます。

    • 想定される結果 (赤で強調表示):

      "yes" as String {encoding: "UTF-8", mediaType: "application/java;
                       charset=UTF-8", mimeType: "application/java",
                      class: "java.lang.String", contentLength: 3}
    • 実際の結果 (緑で強調表示):

      "no" as String {encoding: "UTF-8", mediaType: "application/java;
                      charset=UTF-8", mimeType: "application/java",
                      class: "java.lang.String", contentLength: 2} at (root)

      [Test Results (テスト結果)]​ パネルでテストログの失敗したテストをクリックしてテストを確認することもできます。例:

      "[Test Results (テスト結果) パネルのエラー"]

  2. エラーを修正します。

    1. エラーを確認したら、​[x]​ アイコンをクリックして、XML のエラーメッセージを閉じます。例:

      XML のテストエラーメッセージを閉じる

    2. 想定される出力が生成されるように XML を編集します。

      たとえば、この例の失敗したテストケースでは、​"no"​ ではなく ​"yes"​ が返される必要があります。

  3. エラーを修正したら、テストを再実行して、修正が機能していることを確認します。

    • XML からテストを再実行するには、テストの ​​ (​[Test failure (失敗をテスト)]​) をクリックします。

    • [Testing (テスト)]​ パネルからテストを再実行するには、​​ (​[Run test (テストを実行)]​) をクリックします。

    • [Testing Results (テスト結果)] パネルからテストを再実行するには、パネルを開き、テストログの失敗したテストの名前をクリックし、テストログから ​​ (​[Run test (テストを実行)]​) をクリックします。

MUnit XML 設定に関する指針は、​『MUnit Test Structure Fundamentals』 and 『MUnit Event Processors』​を参照してください。

テスト結果をクリアするには、テスト結果をクリアするを参照してください。

MUnit テストが含まれるプロジェクトをインポートする

Anypoint Studio および Anypoint Code Builder で作成された、インテグレーションまたは実装の Mule プロジェクトには、MUnit テストを含めることができます。

  • プロジェクトを Anypoint Code Builder にインポートして開くには、『IDE へのプロジェクトのインポート』を参照してください。

  • Anypoint Code Builder にインポートする前に Anypoint Studio からプロジェクトをエクスポートするには、​「Studio からのプロジェクトのエクスポート」​のいずれかの手順を使用します。

  • Anypoint Exchange の MUnit テストが含まれるサンプルまたはテンプレートをインポートするインテグレーションを開始するには、​「インテグレーションプロジェクトを作成する」​を参照してください。

    インテグレーションプロジェクトを作成する場合、空のプロジェクトから始める代わりに ​[Template or Example Project (テンプレートまたはサンプルプロジェクト)]​ をクリックします。これにより、テストが含まれるアセットをプロジェクトにインポートできます。

MUnit テストおよびテストスイートを作成する

XML エディターから MUnit テストおよびテストスイートを設定します。

MUnit スイートを作成する

[Explorer]​ からプロジェクトの MUnit テストスイートを作成します。

  1. [Explorer]​ で、​/src/test/munit​ にプロジェクトを開きます。

  2. munit​ フォルダーにスイートファイルを作成します。

    1. munit​ フォルダーを右クリックし、​[New MUnit Test Suite File…​ (新規 MUnit テストスイートファイル…​)]​ を選択します。

    2. スイートの名前を入力します (例: my-suite.xml​)。

    3. 新しいスイートファイルには、XML 宣言 (​<?xml>​) と、​<mule/>​ および ​<mule-config>​ 要素が含まれます。次に例を示します。

      <?xml version="1.0" encoding="UTF-8"?>
      
      <mule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                       xmlns:munit="http://www.mulesoft.org/schema/mule/munit"
                       xmlns:munit-tools="http://www.mulesoft.org/schema/mule/munit-tools"
                       xmlns="http://www.mulesoft.org/schema/mule/core"
                       xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
                       xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
                       http://www.mulesoft.org/schema/mule/munit http://www.mulesoft.org/schema/mule/munit/current/mule-munit.xsd
                       http://www.mulesoft.org/schema/mule/munit-tools
                       http://www.mulesoft.org/schema/mule/munit-tools/current/mule-munit-tools.xsd">
      
        <munit:config name="my-suite.xml" />
      
      </mule>
      xml
  3. MUnit テストを作成する​に進みます。

MUnit テストを作成する

新規または既存のテストスイートで MUnit テストを作成します。MUnit XML のオートコンプリートを使用して、MUnit テストを開始します。テスト設定に関する指針は、前提条件に記載されている ​MUnit ドキュメント​を参照してください。

  1. エディターでテストスイート XML を開きます。

    案内については、​MUnit テストを開く​を参照してください。

  2. XML で、Ctrl+Space を押して使用可能なオプションを表示し、​「munit」​と入力します。例:

    XML のオートコンプリートを使用した MUnit テスト要素の選択

  3. munit:test​ を選択し、スイートのテスト要素を挿入します。例:

    <munit:test name="name" >
    
    </munit:test>
    xml
  4. 名前や他の XML 要素を入力して、テストを作成します。

    たとえば、次の例のような XML の行です。

    <munit:test name="test-01-suite1">
      <munit:validation>
        <munit-tools:assert-equals actual='#["that"]' expected='#["this"]' />
      </munit:validation>
    </munit:test>
    xml

    他の例については、​MUnit の例​を参照してください。

  5. [Test (テスト)] パネルからテストを実行します。

    案内については、​MUnit テストを実行する​を参照してください。

テスト結果をクリアする

テストが完了したら、​[Testing (テスト)]​ パネルからテスト結果をクリアできます。また、不要な場合はログをクリアすることもできます。

  • [Testing (テスト)]​ パネルから、​[Views and More Actions (…​) (表示およびその他のアクション (…​))]​ をクリックして、​[Clear All Results (すべての結果をクリア)]​ を選択します。

  • [Test Results (テスト結果)]​ パネルから、​​ (​[Clear All Results (すべての結果をクリア)]​) をクリックします。例:

    "[Test Results (テスト結果) パネルからのテスト結果のクリア"]

MUnit の例

MUnit ドキュメントには、多数の例が記載されています。『MUnit Cookbook』を参照してください。

次の MUnit テストの例では、​payload​ が文字列 ​"Example"​ であるかどうかを検証します。

<munit:test name="my-test" doc:id="e536ea1f" description="Test Example">
  <munit:execution >
  	<flow-ref doc:name="Reference to Main Flow" doc:id="058d41ef" name="mainFlow"/>
  </munit:execution>
  <munit:validation >
  	<munit-tools:assert-equals actual="#[payload]" expected="Example"
                               message="The payload is expected to be 'Example'."/>
  </munit:validation>
</munit:test>
xml

munit:execution​、​munit:validation​、および他の MUnit テスト要素については、​『MUnit Test Structure Fundamentals』 and 『MUnit Event Processors』​を参照してください。