このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB ユニット テストを使用したモデルのテスト
Simulink® Test™ で作成されたテストを MATLAB® ユニット テスト フレームワークを使用して実行できます。MATLAB ユニット テスト フレームワークを使用する場合、次のようになります。
MATLAB ユニット テストのスクリプト、関数、クラスと一緒にモデル テストを実行可能。
同じフレームワークを使用してモデルとコードのテストが可能。
Jenkins® などの継続的インテグレーション (CI) との統合が可能。
全体的なワークフロー
MATLAB ユニット テストでテストを実行するには次のようにします。
Simulink Test ファイルから
TestSuite
を作成します。TestRunner
を作成します。TestRunner
をカスタマイズするプラグイン オブジェクトを作成します。以下に例を示します。matlab.unittest.plugins.TAPPlugin
は、特定の CI で使用する Test Anything Protocol に従った結果のストリームを生成します。sltest.plugins.ModelCoveragePlugin
は、モデル カバレッジ収集を指定し、コマンド ラインでカバレッジ結果を返せるようにします。テスト マネージャーでカバレッジを設定する場合、このプラグインを使用する必要はありません。
TestRunner
にプラグインを追加します。run
メソッドを使用してテストを実行するか、runInParallel
メソッドを使用してテストを並列実行します。
考慮事項
MATLAB ユニット テストを使用してテストを実行するときは、次のことを考慮してください。
テスト マネージャーでテストを無効にすると、MATLAB ユニット テストを使用してテストにフィルターが適用され、失敗した仮定が結果に反映されます。
テストの用語の比較
MATLAB ユニット テストには、Simulink Test の機能に類似するプロパティがあります。次に例を示します。
テスト ケースに反復が含まれている場合、MATLAB ユニット テストにパラメーター化が含まれます。
テスト ファイルまたはテスト スイートにコールバックが含まれている場合、MATLAB ユニット テストに 1 つ以上のコールバックのフィクスチャが含まれます。
テスト ケースの反復と MATLAB ユニット テストのパラメーター化
パラメーター化の詳細は反復のプロパティに対応します。
Simulink Test | MATLAB ユニット テスト |
---|---|
反復タイプ: スクリプト | パラメーター化プロパティ: |
反復タイプ: テーブル | パラメーター化プロパティ: |
反復の名前 | パラメーター化の名前 |
テスト ケース反復オブジェクト | パラメーター化の値 |
テストのコールバックと 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