テストの実行順序
テストを実行すると、Simulink® Test™ がテスト対象のモデルを開き、コールバック関数を実行してモデルを閉じ、クリーンアップを行います。スクリプトまたはテーブルによる反復がある場合、それらはモデルが読み込まれる前に実行されます。テストでコールバックを使用している場合、それらは反復ごとに実行されます。Simulink テストは、モデルのシミュレーション後にカスタム基準、時間的評価、実行の比較、等価性チェックを評価します。
テストの実行順序は、以下によって異なります。
単一のテスト ケースを実行するか、1 つ以上のテスト ケースを含むテスト スイートを実行するか
テストされるモデルの数
テスト ケースの数
シリアル シミュレーションの場合、テスト ケースはテスト マネージャーにリストされている順序で実行されます。テスト マネージャーでテスト ケースの実行順序を変更するには、[テスト ブラウザー] ペインで目的の順序にテスト ケースをドラッグ アンド ドロップします。テスト スイートをドラッグ アンド ドロップすることはできません。シミュレーションを並列モードで実行する場合、テスト ケースはテスト マネージャーに表示されている順序で実行されないことがあります。
テスト ケースにコールバックが含まれている場合、disp および fprintf はコールバック内では機能しないことに注意してください。代わりに、sltest.testmanager.setpref の ShowSimulationLogs プロパティを使用します。コールバックが実行されることを確認するには、コールバックのブレークポイントを含む MATLAB スクリプトを使用します。
リアルタイム テストのテスト実行順序については、Test Models in Real Timeを参照してください。
単一モデルの単一テスト ケース
単一モデルで特定のテスト ケースを実行するように選択し、テストの実行前にモデルが開かれていない場合、実行順序は次のようになります。
テスト ケースの
Pre-Loadコールバックを実行します。モデルの
PreLoadFcnコールバックを実行します。モデルを読み込みます。
モデルの
PostLoadFcnコールバックを実行します。テスト ケースの
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケースの
Cleanupコールバックを実行します。モデルの
CloseFcnコールバックを実行します。
テスト ケースを含むテスト スイートを実行する場合、テスト スイートの Setup コールバックは最初のステップの前に、テスト スイートの Cleanup コールバックは最後のステップの後に実行されます。
複数のモデルの複数のテスト ケース
別々のモデルで実行される複数のテスト ケースを実行し、テストの実行前にモデルが開かれていない場合、2 つのモデルでの 2 つのテスト ケースの実行順序は次のようになります。
テスト ケース 1 の
Pre-Loadコールバックを実行します。モデル 1 の
PreLoadFcnコールバックを実行します。モデル 1 を読み込みます。
モデル 1 の
PostLoadFcnコールバックを実行します。テスト ケース 1 の
Post-Loadコールバックを実行します。テスト ケース 1 のモデル 1 のシミュレーションを実行します。
テスト ケース 1 の
Cleanupコールバックを実行します。テスト ケース 2 の
Pre-Loadコールバックを実行します。モデル 2 の
PreLoadFcnコールバックを実行します。モデル 2 を読み込みます。
モデル 2 の
PostLoadFcnコールバックを実行します。テスト ケース 2 の
Post-Loadコールバックを実行します。テスト ケース 2 のモデル 2 のシミュレーションを実行します。
テスト ケース 2 の
Cleanupコールバックを実行します。モデル 1 の
CloseFcnコールバックを実行します。モデル 2 の
CloseFcnコールバックを実行します。
テスト ケースを含むテスト スイートを実行する場合、テスト スイートの Setup コールバックは最初のステップの前に、テスト スイートの Cleanup コールバックは最後のステップの後に実行されます。
CloseFcn を使用してモデルを閉じる順序は、モデルを開いた順序や実行した順序とは異なる場合があります。上記の例では、ステップ 15 と 16 の順序が入れ替わる可能性があります。
単一モデルの単一テスト スイートにおける複数のテスト ケース
単一モデルのテスト スイート内で複数のテスト ケースを実行し、テストの実行前にモデルが開かれていない場合、2 つのテスト ケースの実行順序は次のようになります。
テスト ケース 1 の
Pre-Loadコールバックを実行します。モデルの
PreLoadFcnコールバックを実行します。モデルを読み込みます。
モデルの
PostLoadFcnコールバックを実行します。テスト ケース 1 の
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケース 1 の
Cleanupコールバックを実行します。テスト ケース 2 の
Pre-Loadコールバックを実行します。テスト ケース 2 の
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケース 2 の
Cleanupコールバックを実行します。モデルの
CloseFcnコールバックを実行します。
テストの実行前にモデルが開かれている場合、2 つのテスト ケースの実行順序は次のようになります。
テスト ケース 1 の
Pre-Loadコールバックを実行します。テスト ケース 1 の
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケース 1 の
Cleanupコールバックを実行します。テスト ケース 2 の
Pre-Loadコールバックを実行します。テスト ケース 2 の
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケース 2 の
Cleanupコールバックを実行します。
モデルの PreLoadFcn および PostLoadFcn コールバックは、テストの実行前にモデルが既に読み込まれているため実行されないことに注意してください。テストの完了後もモデルが開かれたままなので、モデルの CloseFcn コールバックも実行されません。
単一モデルの複数のテスト スイートにおける複数のテスト ケース
2 つのテスト スイートがあり、それぞれに 2 つのテスト ケースが含まれるとします。例:
テスト スイート 1
テスト ケース 1-1
テスト ケース 1-2
テスト スイート 2
テスト ケース 2-1
テスト ケース 2-2
コールバックの実行順序は次のようになります。
テスト スイート 1 の
Setupコールバックを実行します。テスト ケース 1-1 の
Pre-Loadコールバックを実行します。テスト ケース 1-1 の
PostLoadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケース 1-1 の
Cleanupコールバックを実行します。テスト ケース 1-2 の
Pre-Loadコールバックを実行します。テスト ケース 1-2 の
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケース 1-2 の
Cleanupコールバックを実行します。テスト スイート 1 の
Cleanupコールバックを実行します。テスト スイート 2 の
Setupコールバックを実行します。テスト ケース 2-1 の
Pre-Loadコールバックを実行します。テスト ケース 2-1 の
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケース 2-1 の
Cleanupコールバックを実行します。テスト ケース 2-2 の
Pre-Loadコールバックを実行します。テスト ケース 2-2 の
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケース 2-2 の
Cleanupコールバックを実行します。テスト スイート 2 の
Cleanupコールバックを実行します。
パラメーター オーバーライドを含むテスト ケース
パラメーター オーバーライドを含むテスト ケースの場合、実行順序は次のようになります。
テスト ケースの
Pre-Loadコールバックを実行します。モデルを読み込みます。
パラメーター オーバーライドを読み取り、モデルの更新がトリガーされます。
テスト ケースの
Post-Loadコールバックを実行します。モデルのシミュレーションを実行します。
テスト ケースの
Cleanupコールバックを実行します。モデルの
CloseFcnコールバックを実行します。