このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB ベースの Simulink テストを使用したモデルのテスト
MATLAB® ベースの Simulink® テストは、MATLAB で作成し、テスト マネージャーで開いて実行し、結果を表示する MATLAB コード (.m
) ファイルで定義されます。テスト ファイルは、sltest.TestCase
を継承するクラス定義ファイルです。この継承により、テスト マネージャーでテスト ファイルを開くことができます。テスト マネージャーで MATLAB テスト ファイルを開くと、一部機能が制限されますが (MATLAB ベースのテストの制限事項を参照)、テスト マネージャーで作成されたテストと同じように表示され、動作します。テスト マネージャーで MATLAB テストを使用するだけでなく、他のユニット テスト ファイルと同様にコマンド ラインで MATLAB テストを使用することもできます。
これらのテスト ファイルはテキスト (.m
) ファイルであるため、編集したり、他の .m
テスト ファイルと比較、マージしたり、ファイルから要件にリンクしたりできます。対照的に、テスト マネージャーで作成されたテスト ファイルや Simulink Test™ API を使用して作成されたテスト ファイルは、バイナリ MLDATX ファイルとして保存されます。
クラスとメソッド
TestCase クラスとメソッド
sltest.TestCase
クラスとそのメソッドは、特に MATLAB テストで機能します。これらのメソッドは、テスト ファイルとコマンド ラインで使用できます。ただし、sltest.TestCase.forInteractiveUse
はコマンド ラインでのみ使用できます。これらのメソッドに加えて、MATLAB テストでは matlab.unittest.TestCase
メソッドを使用することもできます。
継承元のクラス | |
モデルを読み込む | |
モデルをシミュレートする | |
2 つのデータ セットが等価であると仮定する | |
2 つのデータ セットが等価であるとアサートする | |
2 つのデータ セットが等価であるという致命的なアサーションを行う | |
2 つのデータ セットが等価であることを検証する | |
コマンド ラインで使用するテスト ケースを作成する | |
テスト ケースが範囲外になったときに削除される一時フォルダーを作成する | |
createSimulationInput | Simulink.SimulationInput または sltest.harness.SimulationInput オブジェクトを作成する |
テスト ハーネス クラス
sltest.harness.SimulationInput
は、シミュレーション中にテスト ハーネスに適用される変更を指定するために使用できるオブジェクトを作成します。このクラスは、MATLAB ベースの Simulink テストに使用するだけでなく、他の MATLAB コードでも使用できます。
テスト ランナーのメソッド
matlab.unittest.TestRunner
のこれらのメソッドは、MATLAB ベースの Simulink テストに特に適用されます。
addModelCoverage
— テスト ランナーを使用したモデル カバレッジ収集を有効にします。このメソッドを使用する代わりに、テスト マネージャーで MATLAB ベースの Simulink テスト ファイルを開くと、そこでカバレッジ収集を有効にすることができます。addSimulinkTestResults
— テスト結果を Simulink テスト マネージャーにプッシュします。
プラグイン クラス
これらの sltest.plugins
クラスは、MATLAB ベースのテストの機能を有効にします。これらのメソッドに加えて、これらのテストでは他の sltest.plugins
クラスを使用することもできます。プラグインを matlab.unittest.TestRunner
に接続することで、sltest.TestCase
テストの実行中に機能を有効にすることができます。
MATLAB テスト シミュレーションおよびテスト結果とテスト マネージャーの統合を有効にする | |
テスト マネージャーの結果の [ログ記録された信号] ペインへのテキスト出力の書き込みを有効にする | |
モデル カバレッジの収集を有効にする |
ベースラインの MATLAB ベースの Simulink テストの作成
ベースラインの MATLAB テストを作成するには、次のようにします。
テスト ケースを定義する MATLAB コード (
.m
) ファイルを作成します。MATLAB エディターは、コマンド ラインから起動することも、テスト マネージャーから [新規] 、 [テスト ケース] 、 [MATLAB ベースの Simulink テスト] を使用して起動することもできます。Class-Based Unit Testsを参照してください。MATLAB テストの唯一の違いとして、クラスが
matlab.unittest.TestCase
ではなくsltest.TestCase
を継承する必要があります。このサンプルの MATLAB テスト ファイルには、
testOne
関数で定義された 1 つのテストが含まれています。テスト マネージャーでテストを実行すると、テストにより、sltestMATLABBasedTestExample
という名前のモデルが読み込まれます。次に、gain2_var
変数の値が設定され、モデルがシミュレートされます。最後に、テストにより、モデル シミュレーションの出力がベースライン データの MAT ファイルと比較されます。classdef myTest < sltest.TestCase methods (Test) function testOne(testCase) testCase.loadSystem... ('sltestMATLABBasedTestExample'); evalin('base','gain2_var = 2.01;'); simOut = testCase.simulate... ('sltestMATLABBasedTestExample'); testCase.verifySignalsMatch(simOut,'baselineOne.mat',... 'AbsTol',0.015); end end end
テスト ハーネスを使用している場合は、上記の MATLAB テスト ファイルの
simOut
行を以下に置き換えます。あるいは、シミュレーションの終了時間を指定するには、simOut = testCase.simulate('sltestMATLABBasedTestExample',... 'WithHarness','sltestMATLABBasedTestExample_harness1');
simOut
を次のように置き換えます。in = testCase.createSimulationInput('sltestMATLABBasedTestExample',... 'WithHarness','sltestMATLABBasedTestExample_harness1'); in = in.setModelParameter("StopTime","10") simOut = testCase.simulate(in);
ベースライン データの MAT ファイルがまだ存在しないか、更新する必要がある場合は、MATLAB コマンド ラインで以下を使用します。
runtests(<test>,'GenerateBaselines',true)
サンプル ファイルでは、
<test>
は'myTest/testOne'
になっています。ベースラインを生成すると、テストの実行が開始されます。シミュレーション データ インスペクターのレポートを開くために一時停止し、MATLAB コマンド ラインでベースライン データを確認するように求められます。データを承認すると、ベースライン データが新しい MAT ファイルに保存されるか、既存の MAT ファイルが更新されます。その後、テストは引き続き実行されますが、新しいベースライン データまたは更新されたベースライン データが現在の実行に含まれていないため、失敗します。
runtests
コマンドを使用してテストを再実行し、新しいベースラインまたは更新されたベースラインを使用し、パスした結果を生成します。コマンド ラインの黄色のrerun
ハイパーリンクを使用してテストを再実行することもできます。オプションとして、Simulink Coverage™ ライセンスをお持ちの場合は、
sltest.plugins.ModelCoveragePlugin
を使用してテストにカバレッジ収集を含めることができます。カバレッジ収集の例と情報については、MATLAB ベースの Simulink テストを使用したカバレッジの収集を参照してください。あるいは、テスト マネージャーを使用してカバレッジを収集することもできます。テスト マネージャーでテスト ファイルを開いた後、テスト ファイルを選択し、[カバレッジの設定] オプションを選択して、カバレッジ メトリクスを選択します。ファイル内のテスト スイートとテスト ケースは、テスト ファイルからカバレッジ設定を継承します。テスト マネージャーでカバレッジ収集とメトリクスを設定した場合は、カバレッジ プラグインを
runner
にインポートまたは追加する必要はありません。テスト マネージャーでカバレッジ メトリクスを設定してからテスト マネージャーを閉じた場合、カバレッジ設定は MATLAB ベースの Simulink テスト コード (
.m
) ファイルに保存されません。オプションとして、Requirements Toolbox™ ライセンスをお持ちの場合は、要件を追加できます。テスト マネージャーを開き、テスト ファイルを更新します。
[開く] 、 [MATLAB ベースの Simulink テスト (.m) を開く] をクリックし、テスト ファイルを選択します。テスト ファイルが読み込まれ、そのテスト階層が [テスト ブラウザー] ペインに表示されます。テスト ファイルを選択すると、テスト マネージャーに [要件] ペインと [テスト ファイルの内容] ペインが表示されます。
[追加] をクリックして [要件] セクションを展開して外向きリンク エディターを開き、要件を追加します。要件の追加については、要件へのリンクを参照してください。
テスト マネージャーから MATLAB コード (
.m
) テスト ファイルを更新するには、[MATLAB エディターでテストを開く] リンクをクリックします。コード ファイルを編集して変更を保存した後、またはカバレッジや要件を追加した後、テスト マネージャーに戻り、[テスト ブラウザー] ペインのテスト ファイルの横にある同期ボタン
をクリックします。
テストを実行し、結果を表示し、テスト結果レポートを作成します。
[実行] をクリックしてテストを実行します。
結果を表示するには、[結果とアーティファクト] ペインの行を展開します。
カバレッジ結果を表示するには、[結果とアーティファクト] ペインで [結果] 項目を選択し、[カバレッジの集計] セクションを展開します。詳細については、Collect Coverage in Testsを参照してください。
オプションとして、テスト結果レポートを作成します。Create, Set Options, and Use Templates for Test Result Reportsを参照してください。
あるいは、テスト マネージャーでカバレッジの追加 (手順 4) およびテストの実行 (手順 8) を行う代わりに、MATLAB コマンド ラインでこれらのコマンドを使用してカバレッジを追加し、テストを実行し、結果をテスト マネージャーにプッシュすることもできます。カバレッジを収集するには、MATLABTestCaseIntegrationPlugin
と ModelCoveragePlugin
を testrunner
に追加する必要があります。addModelCoverage
関数により、ModelCoveragePlugin
を追加します。
suite = testsuite('myTests'); runner = testrunner('textoutput'); runner.addModelCoverage(... "CollectMetrics",["MCDC","Condition"]); runner.addPlugin(sltest.plugins.MATLABTestCaseIntegrationPlugin); runner.run(suite);
MATLAB ベースの Simulink テスト ファイルから要件へのリンク
メモ
要件リンクを含めるには、Requirements Toolbox が必要です。
MATLAB エディターで編集中のファイルから要件へのリンクを追加するには、要件への MATLAB コードのリンク (Requirements Toolbox)を参照してください。MATLAB テスト ファイルの場合も、同じプロセスを使用してリンクを追加します。ただし、MATLAB コード (.m
) ファイルで選択したテキストによって、リンクのタイプと、リンクが追加されるテストが決まります。選択に応じて次のようになります。
クラス定義行 (例:
classdef myClass < sltest.TestCase
) を選択した場合、テスト ファイル全体のVerified By
リンクが追加されます。テスト関数内のテキストを選択した場合、その関数の
Verified By
リンクが追加されます。複数のテスト関数にまたがるテキストを選択した場合、選択項目の最初の関数の
Verified By
リンクが追加されます。その他のテキストを選択した場合、選択項目の
Related To
リンクが追加されます。
要件リンクを追加した後、[表示] 、 [検証ステータス] をクリックすると、要件エディターで検証ステータスを表示できます。Verified By
要件のステータスを更新するには、要件を右クリックして [テストの実行] を選択します。Review Requirements Verification Status (Requirements Toolbox)を参照してください。
MATLAB コード (.m
) ファイルで作成したリンクは、テスト マネージャーの [要件] セクションに表示されます。テスト マネージャー内からの要件へのリンクは、要件へのリンクで説明されているのと同じように機能します。
要件エディターを開いて、MATLAB テストの内向きリンクをクリックすると、Simulink Test ライセンスをお持ちの場合は、テスト マネージャーが開き、関連付けられているテストに移動します。ライセンスがない場合は、MATLAB エディターが開き、その要件に関連付けられたコード行に移動します。
パラメーター化されたテストの場合、Requirements Toolbox では、テストの個々のパラメーター化されたバージョンへのリンクはサポートされていません。.m
ファイルでは、パラメーター化されたテストから要件へのリンクを作成すると、そのリンクはそのテストのすべてのバージョンに関連付けられます。テスト マネージャーでは、パラメーター化されたテストの特定のバージョンから要件へのリンクを作成すると、そのリンクはそのテストのすべてのバージョンに関連付けられます。
MATLAB ベースのテストの制限事項
MATLAB ベースの Simulink テストでは以下はサポートされていません。
ベースライン テスト以外のテスト タイプ。
テストの並列実行。
複数のリリースでのテストの実行。
タグと説明のテスト。
コールバック。(ただし、MATLAB ベースのテストではテスト マネージャーでコールバックはサポートされていませんが、
TestClassSetup
とTestMethodSetup
、または.m
ファイル内のフィクスチャを使用して同様の機能を実現できます。クラスを使用するセットアップ コードと破棄コードの記述を参照してください。)論理的評価と時間的評価。
テスト マネージャーにおける、テスト スイートまたはテスト ファイル レベルでのカバレッジ収集の有効化、カバレッジ メトリクスの変更。
テスト マネージャーからの、MATLAB ベースの Simulink テスト MATLAB コード (
.m
) ファイルへのカバレッジ設定の保存。
参考
addSimulinkTestResults
| addModelCoverage
| sltest.plugins.ModelCoveragePlugin
| sltest.plugins.MATLABTestCaseIntegrationPlugin
| sltest.TestCase
| matlab.unittest.TestCase
| matlab.unittest.TestRunner
トピック
- Using MATLAB-Based Simulink Tests in the Test Manager
- MATLAB ベースの Simulink テストを使用したカバレッジの収集
- MATLAB ユニット テストを使用したモデルのテスト
- 要件へのリンク
- 要件への MATLAB コードのリンク (Requirements Toolbox)
- テスト ケースの要件へのリンク (Requirements Toolbox)