MATLAB ユニット テストを使用したモデルのテスト
Simulink® Test™ で作成されたテストを MATLAB® ユニット テスト フレームワークを使用して実行できます。フレームワークを使用する場合、次のようになります。
ユニット テストのスクリプト、関数、クラスと一緒にモデル テストを実行可能。
同じフレームワークを使用してモデルとコードのテストが可能。
Jenkins® などの継続的インテグレーション (CI) との統合が可能。
全体的なワークフロー
ユニット テスト フレームワークでテストを実行するには次のようにします。
Simulink Test ファイルから
TestSuite
を作成します。TestRunner
を作成します。TestRunner
をカスタマイズするプラグイン オブジェクトを作成します。以下に例を示します。matlab.unittest.plugins.TAPPlugin
は、特定の CI で使用する Test Anything Protocol に従った結果のストリームを生成します。sltest.plugins.ModelCoveragePlugin
は、モデル カバレッジ収集を指定し、コマンド ラインでカバレッジ結果を返せるようにします。テスト マネージャーでカバレッジを設定する場合、このプラグインを使用する必要はありません。
TestRunner
にプラグインを追加します。run
メソッドを使用してテストを実行するか、runInParallel
メソッドを使用してテストを並列実行します。
考慮事項
ユニット テスト フレームワークを使用してテストを実行するときは、次のことを考慮してください。
テスト マネージャーでテストを無効にすると、ユニット テストを使用してテストにフィルターが適用され、失敗した仮定が結果に反映されます。
テストの用語の比較
ユニット テスト フレームワークには、Simulink Test の機能に類似するプロパティがあります。以下に例を示します。
テスト ケースに反復が含まれている場合、ユニット テストにパラメーター化が含まれます。
テスト ファイルまたはテスト スイートにコールバックが含まれている場合、ユニット テストに 1 つ以上のコールバックのフィクスチャが含まれます。
テスト ケースの反復とユニット テストのパラメーター化
パラメーター化の詳細は反復のプロパティに対応します。
Simulink Test | MATLAB ユニット テスト |
---|---|
反復タイプ: スクリプト | パラメーター化プロパティ: |
反復タイプ: テーブル | パラメーター化プロパティ: |
反復の名前 | パラメーター化の名前 |
テスト ケース反復オブジェクト | パラメーター化の値 |
テストのコールバックとユニット テストのフィクスチャ
フィクスチャは、テスト ファイルに含まれているコールバックに依存します。テスト ケース自体で実行されるテスト ケースのコールバックはフィクスチャに含まれません。
Simulink Test のコールバック | MATLAB ユニット テストのフィクスチャ |
---|---|
テスト ファイルのコールバック |
|
テスト スイートのコールバック |
|
ファイルとスイートのコールバック |
|
コールバックなし | フィクスチャなし |
MATLAB® ユニット テストを使用した基本的なワークフロー
この例では、Simulink® Test™ で作成されたテスト ファイルについて、基本的な MATLAB® ユニット テストを作成して実行する方法を示します。テスト スイートを作成してテストを実行し、診断レポートを表示します。
この例を実行する前に、検証エラーによる警告を一時的に無効にします。
warning off Stateflow:Runtime:TestVerificationFailed; warning off Stateflow:cdr:VerifyDangerousComparison;
1.テスト マネージャーでテスト ファイルを作成するか、既存のテスト ファイルで始めます。この例では、verify
ステートメントを使用して、AutopilotTestFile
で自動操縦システムのコンポーネントをいくつかの要件についてテストします。
2.テスト ファイルから TestSuite
を作成します。
apsuite = testsuite('AutopilotTestFile.mldatx');
3.テスト ランナーを作成します。
import matlab.unittest.TestRunner
aprunner = TestRunner.withNoPlugins;
4.テスト マネージャーの結果を生成するプラグインを追加します。
import sltest.plugins.TestManagerResultsPlugin
tmr = TestManagerResultsPlugin;
addPlugin(aprunner,tmr)
5.テストを実行します。
apresults = run(aprunner,apsuite);
6.テストの概要を表示します。検証エラーが原因でテストに失敗したことが示されます。
apresults.Details.SimulinkTestManagerResults
ans = TestResultContainer with properties: TestResult: [1x1 sltest.testmanager.TestCaseResult]
警告を有効にします。
warning on Stateflow:Runtime:TestVerificationFailed; warning on Stateflow:cdr:VerifyDangerousComparison;
参考
Test
| TestResult
| TestRunner
| TestSuite
| matlab.unittest.plugins Package