Main Content

テスト スクリプトへのリンク

このワークフローでは、外向きリンク エディターと API を使用して、要件を MATLAB® スクリプトにリンクします。要件エディターの検証ステータスにテスト結果が反映されます。これらの説明は、外部のテスト結果を要件の検証ステータスに含めるためのワークフローに従います。詳細については、外部ソースからの結果を検証ステータスに含めるを参照してください。

サンプル ファイルを開く

テストとしてカスタムに作成された MATLAB スクリプトからの結果の統合の例を開きます。

openExample(['slrequirements/' ...
    'IntegratingResultsFromACustomAuthoredMATLABScriptAsATestExample'])

要件エディターcounter_req の要件セットを開きます。この要件セットには要件 ID と説明をもつ子要件があります。

The Requirements Editor displays the counter_req requirement set, which has one parent requirement and three child requirements.

MATLAB コード ファイル runmytests.m は、Counter.mCounter クラスのテストを実行します。runmytests.m ファイルには、テスト結果を TAP 形式で results.tap という名前のファイルに書き込むカスタム メソッドが含まれています。この例では、外向きリンク エディターと Requirements Toolbox™ API を使用して、counter_req 要件セットの要件と runmytests.m のテスト ケースの間のリンクを作成します。

カスタム ドキュメント インターフェイスの作成と登録

テスト スクリプトへのリンクを作成する前に、テスト スクリプトへのリンクとテスト スクリプトからの結果の取得を有効にするためのカスタム ドキュメント インターフェイスを作成して登録します。

  1. MATLAB コマンド ラインで次のコードを実行して myCustomDocInterface.m ファイルを開きます。

    open(fullfile(matlabroot,"toolbox","slrequirements","slrequirements","linktype_examples","myCustomDocInterface.m"))

  2. 関数名 myCustomDocInterface linktype_mymscripttap に置き換えます。

  3. myCustomDocInterface.m のコピーを現在のフォルダーに保存します。MATLAB の [エディター] タブで [保存][コピーに名前を付けて保存] をクリックします。ファイルを linktype_mymscripttap.m として保存します。

  4. docInterface.Label'MScript TAP Results' として設定します。

  5. docInterface.Extensions{'.M'} として設定します。

  6. 既存の GetResultFcn を次の関数に置き換えます。

    function result = GetResultFcn(link)
    testID = link.destination.id;
    testFile = link.destination.artifact;
    resultFile = getResultFile(testFile);
    
    if ~isempty(resultFile) && isfile(resultFile)
        tapService = slreq.verification.services.TAP();
        result = tapService.getResult(testID, resultFile);
    else
        result.status = slreq.verification.Status.Unknown;
    end
    
    end
    
    function resultfile = getResultFile(testFile)
    resultMap = ["runmytests.m", "results.tap";...
        "othertests.m", "results2.tap"];
    resultfile = resultMap(resultMap(:,1) == testFile,2);
    end
    GetResultFcn はユーティリティ slreq.verification.services.TAP を使用して、検証の結果ファイルを解釈します。GetResultFcn の詳細については、Define Custom Document Interface for Direct Linking to Requirementsを参照してください。

  7. linktype_mymscripttap.m を保存します。

  8. リンク タイプを登録します。コマンド ラインに次のように入力します。

    rmi register linktype_mymscripttap

    メモ

    コマンドが警告を返す場合、ファイルを登録解除し、手順 5 に再度従わなければなりません。以下を入力して、ファイルを登録解除します。

    rmi unregister linktype_mymscripttap

テスト スクリプトのテスト ケースへの要件のリンク

テスト結果を生成するテスト スクリプトへの要件からのリンクを作成して、要件を確認できます。外向きリンク エディターを使用して、または Requirements Toolbox API を使用して、リンクを作成できます。

外向きリンク エディターを使用したリンクの作成

外向きリンク エディターを使用して、要件からテスト スクリプトへのリンクを作成します。

  1. 要件エディターを開き、counter_req.slreqx 要件セットで子要件 1.1 を右クリックして、[[外向きリンク] ダイアログを開く] を選択します。

  2. 外向きリンク エディターのダイアログ ボックスの [要件] タブで、[新規] をクリックします。

  3. 以下の詳細を入力してリンクを確立します。

    • 説明: runmytestscounterStartsAtZero

    • ドキュメント タイプ: MScript TAP Results

    • ドキュメント: runmytests.m

    • 場所: counterStartsAtZero

  4. [OK] をクリックします。要件エディター[リンク] セクションでリンクが強調表示されます。

    The Outgoing Links Editor shows the new link with the previously described properties.

API を使用したテスト スクリプトへのリンク

API を使用して、要件からテスト スクリプトへのリンクを作成します。

  1. MATLAB コマンド プロンプトで、次を入力します。

    externalSource.id = 'counterStartsAtZero';
    externalSource.artifact = 'runmytests.m';
    externalSource.domain = 'linktype_mymscripttap';

  2. 以下を入力して、リンクに関連する要件を見つけます。

    requirement = reqSet.find(Type="Requirement",SID=2);

  3. 以下を入力してリンクを作成します。

    link = slreq.createLink(requirement,externalSource);
    これにより、SID2 に設定された要件のテスト ケース counterStartsAtZero としてリンクが作成されます。要件エディターで、リンクが [リンク][確認者] セクションに表示されます。

    The link is shown in the Requirements Editor.

検証ステータスの表示

要件セットの検証ステータスを更新して、Excel® の状態ログに基づいて counterStartsAtZero テスト ケースの検証情報を更新します。

[リフレッシュ] をクリックして、要件エディターで検証ステータスを更新できます。要件セット全体についての検証ステータスが表示されるよう、[列] + [検証ステータス] が選択されていることを確認します。

The Requirements Editor shows the requirement set with 3 requirements and one is verified.

検証ステータスは、3 つの要件のうち 1 つが検証されたことを示しています。

MATLAB コマンド プロンプトで次のように入力して、検証ステータスを更新して現在のステータスを取得することもできます。

updateVerificationStatus(reqSet)
status = getVerificationStatus(reqSet)

MATLAB ユニット テスト ケースからの結果の統合

テスト スクリプトにリンクすることで、MATLAB ユニット テスト ケースの結果を統合することもできます。テストは、JUnit 出力を生成する XML プラグインを用いるカスタマイズされたテスト ランナーを使用して実行されます。XMLPlugin クラスは、テスト結果を XML ファイルに書き込むプラグインを作成します。詳細については、matlab.unittest.plugins.XMLPlugin.producingJUnitFormat を参照してください。

テスト スクリプトを使用する場合と同じ方法でドメインを登録し、リンクを作成できます。

参考

アプリ

クラス

関数

関連する例

詳細