テスト スクリプトへのリンク
このワークフローでは、外向きリンク エディターと API を使用して、要件を MATLAB® スクリプトにリンクします。要件エディターの検証の状態にテスト結果が反映されます。これらの説明は、外部のテスト結果を要件の検証の状態に含めるためのワークフローに従います。詳細については、外部ソースからの結果を検証の状態に含めるを参照してください。
外向きリンク エディターを使用したテスト スクリプトへのリンク
要件エディターで counter_req.slreqx
という要件セットを作成し、それを書き込み可能な場所に保存します。この要件セットには要件 ID と説明をもつ子要件があります。要件セットの作成方法の詳細については、要件エディターでの要件の処理を参照してください。
Counter.m
で Counter
クラスのテストを実行する、runmytests.m
という MATLAB スクリプトがあります。テスト スクリプトには、結果を TAP 形式で results.tap
という名前のファイルに書き込むカスタム メソッドが含まれています。テストを実行し、テスト結果が含まれる results.tap
ファイルが生成されたと仮定します。テストの結果を counter_req.slreqx
の要件にリンクする必要があります。次の手順に従って、runmytests.m
スクリプト内で counterStartsAtZero
というテスト ケースを使用して検証の状態を作成して確認します。
リンク タイプの作成と登録
matlabroot/toolbox/slrequirements/linktype_examples/linktype_TEMPLATE.m
にあるテンプレート ファイルを開きます。次の手順に従います。
新しい MATLAB ファイルを作成します。
linktype_TEMPLATE
の内容を新しいファイルにコピーします。ファイルをlinktype_mymscripttap.m
として保存します。linktype_mymscripttap.m
の場合関数名
linktype_TEMPLATE
をlinktype_mymscripttap.m
に置き換えます。linkType.Label
を'MScript TAP Results'
として設定します。linkType.Extensions
を{'.M'}
として設定します。linktype_mymscripttap
で使用するためにGetResultFcn
のコマンドのコメントを解除し、以下を入力します。linktype.GetResultFcn = @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
を使用して、検証の結果ファイルを解釈します。詳細については、slreq.verification.services.TAP
を参照してください。GetResultFcn
の詳細については、リンクとリンク タイプを参照してください。
linktype_mymscripttap.m
を保存します。リンク タイプを登録します。コマンド ラインに次のように入力します。
rmi register linktype_mymscripttap
メモ
コマンドが警告を返す場合、ファイルを登録解除し、手順 5 に再度従わなければなりません。以下を入力して、ファイルを登録解除します。
rmi unregister linktype_mymscripttap
リンクの作成
次の手順に従って、外向きリンク エディターでリンクを手動で追加します。
要件エディターを開き、
counter_req.slreqx
要件セットで子要件1.1
を右クリックして、[[外向きリンク] ダイアログを開く] を選択します。外向きリンク エディターのダイアログ ボックスの [要件] タブで、[新規] をクリックします。
以下の詳細を入力してリンクを確立します。
説明:
runmytestscounterStartsAtZero
ドキュメント タイプ:
MScript TAP Results
ドキュメント:
runmytests.m
場所:
counterStartsAtZero
[OK] をクリックします。要件エディターの [リンク] セクションでリンクが強調表示されます。
検証の状態の表示
要件エディターで検証の状態を更新します。要件エディターで要件の検証の状態を表示するには、 [更新] をクリックします。これにより、パスまたは失敗した要件セット全体の検証の状態が示されます。
counterStartsAtZero
の要件は完全に検証されています。ここでは、検証の状態は、3 つのテストのうち 1 つにパスしたことを示しています。
API を使用したテスト スクリプトへのリンク
要件エディターで counter_req.slreqx
という要件セットを作成し、それを書き込み可能な場所に保存します。この要件セットには要件 ID と説明をもつ子要件があります。要件セットの作成方法の詳細については、要件エディターでの要件の処理を参照してください。
Counter.m
で Counter
クラスのテストを実行する runmytests.m
という MATLAB スクリプトがあります。テスト スクリプトには、結果を TAP 形式で results.tap
という名前のファイルに書き込むカスタム メソッドが含まれています。テストを実行し、テスト結果が含まれる results.tap
ファイルが生成されたと仮定します。テストの結果を counter_req.slreqx
の要件にリンクする必要があります。次の手順に従って、runmytests.m
スクリプト内で counterStartsAtZero
というテスト ケースを使用して検証の状態を作成して確認します。
リンク タイプの作成と登録
matlabroot/toolbox/slrequirements/linktype_examples/linktype_TEMPLATE.m
にあるテンプレート ファイルを開きます。次の手順に従います。
新しい MATLAB ファイルを作成します。
linktype_TEMPLATE
の内容を新しいファイルにコピーします。ファイルをlinktype_mymscripttap.m
として保存します。linktype_mymscripttap.m
の場合:関数名
linktype_TEMPLATE
をlinktype_mymscripttap.m
に置き換えます。linkType.Label
を'MScript TAP Results'
として設定します。linkType.Extensions
を{'.M'}
として設定します。linktype_mymscripttap
で使用するためにGetResultFcn
のコマンドのコメントを解除し、以下を入力します。linktype.GetResultFcn = @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
を使用して、検証の結果ファイルを解釈します。詳細については、slreq.verification.services.TAP
を参照してください。GetResultFcn
の詳細については、リンクとリンク タイプを参照してください。
linktype_mymscripttap.m
を保存します。リンク タイプを登録します。コマンド ラインに次のように入力します。
rmi register linktype_mymscripttap
メモ
コマンドが警告を返す場合、ファイルを登録解除し、手順 5 に再度従わなければなりません。以下を入力して、ファイルを登録解除します。
rmi unregister linktype_mymscripttap
リンクの作成
リンクを作成するには次の手順に従います。
MATLAB コマンド プロンプトで、次を入力します。
externalSource.id = 'counterStartsAtZero'; externalSource.artifact = 'runmytests.m'; externalSource.domain = 'linktype_mymscripttap';
以下を入力して、リンクに関連する要件を見つけます。
requirement = reqSet.find('Type', 'Requirement', 'SID', 2);
以下を入力してリンクを作成します。
これにより、要件link = slreq.createLink(requirement, externalSource);
SID
のテスト ケースcounterStartsAtZero
としてリンクが作成されます。要件エディターで、リンクが [リンク] 、 [確認者] セクションに表示されます。
検証の状態の表示
検証の状態を更新します。MATLAB コマンド プロンプトで、次を入力します。
reqSet.updateVerificationStatus
status = reqSet.getVerificationStatus

counterStartsAtZero
の要件は完全に検証されています。ここでは、検証の状態は、3 つのテストのうち 1 つにパスしたことを示しています。
MATLAB ユニット テスト ケースからの結果の統合
テスト スクリプトにリンクすることで、MATLAB ユニット テスト ケースの結果を統合することもできます。テストは、JUnit 出力を生成する XML プラグインを用いるカスタマイズされたテスト ランナーを使用して実行されます。XMLPlugin
クラスは、テスト結果を XML ファイルに書き込むプラグインを作成します。詳細については、matlab.unittest.plugins.XMLPlugin.producingJUnitFormat
を参照してください。
テスト スクリプトを使用する場合と同じ方法でドメインを登録し、リンクを作成できます。一連の要件に関する検証の状態が要件エディターに示されます。