Main Content

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

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

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

FileCallbacksFixtureSuiteCallbacksFixture を含む異種混合の 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: [1x1 sltest.testmanager.TestCaseResult]

警告を有効にします。

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

参考

| | | |

関連するトピック