メインコンテンツ

MATLAB ユニット テストを使用したモデルのテスト

R2026b

Simulink® Test™ で作成されたテストを MATLAB® ユニット テスト フレームワークを使用して実行できます。フレームワークを使用する場合、次のようになります。

  • ユニット テストのスクリプト、関数、クラスと一緒にモデル テストを実行可能。

  • 同じフレームワークを使用してモデルとコードのテストが可能。

  • Jenkins® などの継続的インテグレーション (CI) との統合が可能。

全体的なワークフロー

ユニット テスト フレームワークでテストを実行するには次のようにします。

  1. Simulink Test ファイルから TestSuite を作成します。

  2. TestRunner を作成します。

  3. TestRunner をカスタマイズするプラグイン オブジェクトを作成します。以下に例を示します。

    • matlab.unittest.plugins.TAPPlugin は、特定の CI で使用する Test Anything Protocol に従った結果のストリームを生成します。

    • sltest.plugins.ModelCoveragePlugin は、モデル カバレッジ収集を指定し、コマンド ラインでカバレッジ結果を返せるようにします。テスト マネージャーでカバレッジを設定する場合、このプラグインを使用する必要はありません。

  4. TestRunner にプラグインを追加します。

  5. run メソッドを使用してテストを実行するか、runInParallel メソッドを使用してテストを並列実行します。

考慮事項

ユニット テスト フレームワークを使用してテストを実行するときは、次のことを考慮してください。

  • テスト マネージャーでテストを無効にすると、ユニット テストを使用してテストにフィルターが適用され、失敗した仮定が結果に反映されます。

テストの用語の比較

ユニット テスト フレームワークには、Simulink Test の機能に類似するプロパティがあります。以下に例を示します。

  • テスト ケースに反復が含まれている場合、ユニット テストにパラメーター化が含まれます。

  • テスト ファイルまたはテスト スイートにコールバックが含まれている場合、ユニット テストに 1 つ以上のコールバックのフィクスチャが含まれます。

テスト ケースの反復とユニット テストのパラメーター化

パラメーター化の詳細は反復のプロパティに対応します。

Simulink Test

MATLAB ユニット テスト

反復タイプ: スクリプト

パラメーター化プロパティ: ScriptedIteration

反復タイプ: テーブル

パラメーター化プロパティ: TableIteration

反復の名前

パラメーター化の名前

テスト ケース反復オブジェクト

パラメーター化の値

テストのコールバックとユニット テストのフィクスチャ

フィクスチャは、テスト ファイルに含まれているコールバックに依存します。テスト ケース自体で実行されるテスト ケースのコールバックはフィクスチャに含まれません。

Simulink Test のコールバック

MATLAB ユニット テストのフィクスチャ

テスト ファイルのコールバック

FileCallbacksFixture

テスト スイートのコールバック

SuiteCallbacksFixture

ファイルとスイートのコールバック

FileCallbacksFixture と SuiteCallbacksFixture を含む異種混合の CallbacksFixture

コールバックなし

フィクスチャなし

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: [1×1 sltest.testmanager.TestCaseResult]

警告を有効にします。

warning on Stateflow:Runtime:TestVerificationFailed;
warning on Stateflow:cdr:VerifyDangerousComparison;

参考

| | | |

トピック