このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB ベースの Simulink テストを使用したカバレッジの収集
この例では、MATLAB® ベースの Simulink® テストを使用してテスト ハーネスでモデルのカバレッジを収集し、MATLAB Test フレームワークを使用して結果をテスト マネージャーに取り込む方法を説明します。MATLAB ベースの Simulink テストは、sltest.TestCase
から継承された MATLAB コード (.m
) ファイルのテスト ケース クラス定義です。
MATLAB ベースの Simulink テスト ファイル
この例には、ここで使用するために作成された MATLAB ベースの Simulink テスト ファイルである TestHarnessWithModelCoverage.m
が提供されています。このテスト ファイルには 2 つのテスト関数が含まれています。それぞれに、入力データを駆動してサブシステム TestHarnessWithModelCoverage/Subsystem1
をテストし、対応するベースラインと比較するためのハーネス モデルがあります。このテストは、モデルのシミュレーションを実行する際に、Simulink.SimulationOutput
オブジェクトを使用します。
classdef TestHarnessWithModelCoverage < sltest.TestCase
methods (Test) function testOne(testCase) in = testCase.createSimulationInput('simpleSwitchWithSubsystemIn',... 'WithHarness','simpleSwitchWithSubsystemIn_Harness1'); simOut = testCase.simulate(in); testCase.verifySignalsMatch(simOut,'baselineOne.mat'); end function testTwo(testCase) in = testCase.createSimulationInput('simpleSwitchWithSubsystemIn',... 'WithHarness','simpleSwitchWithSubsystemIn_Harness2'); simOut = testCase.simulate(in); testCase.verifySignalsMatch(simOut,'baselineTwo.mat'); end end
end
TestRunner とテスト スイートの作成
sltest_ratelim
モデルを実行するために TestRunner
を作成します。
import matlab.unittest.TestRunner;
runner = TestRunner.withTextOutput;
TestRunner
と共に使用する TestSuite
を作成します。
suite = testsuite('TestHarnessWithModelCoverage');
テスト ランナーの構成
プラグイン メソッドを使用して、sltest.TestCase
からのテスト結果をテスト マネージャーに追加するように TestRunner
を構成します。TestRunnerPlugin
を TestRunner
に追加します。
import sltest.plugins.MATLABTestCaseIntegrationPlugin;
runner.addPlugin(MATLABTestCaseIntegrationPlugin);
DiagnosticsOutputPlugin
および ToTestManagerLog
は、sltest.TestCase
の実行からの診断を、Test Manager
の TestCaseResults
のログにストリーミングします。診断には、パスしたテストのパスした診断情報が含まれます。DiagnosticsOutputPlugin
および ToTestManagerLog
を TestRunner
に追加します。
import sltest.plugins.ToTestManagerLog; import matlab.unittest.plugins.DiagnosticsOutputPlugin; streamOutput = ToTestManagerLog(); diagnosticsOutputPlugin = DiagnosticsOutputPlugin... (streamOutput,'IncludingPassingDiagnostics',true); runner.addPlugin(diagnosticsOutputPlugin);
Simulink モデルのカバレッジ収集の構成
simulate
メソッドを使用してシミュレートされた sltest.TestCase
内のモデルは、カバレッジを収集できます。カバレッジ メトリクスの収集を構成するには、ModelCoveragePlugin
を使用します。この例では、MCDC カバレッジを収集します。ModelCoveragePlugin
を TestRunner
に追加します。
import sltest.plugins.coverage.CoverageMetrics; import sltest.plugins.ModelCoveragePlugin; mcdcMetrics = CoverageMetrics('MCDC',true); runner.addPlugin(ModelCoveragePlugin('Collecting',mcdcMetrics));
代わりに、テスト マネージャーでカバレッジ収集をオンにしてカバレッジ メトリクスを設定することもできます。この代替方法を使用する場合、カバレッジのプラグインを runner
にインポートしたり追加したりする必要はありません。
カバレッジの収集と、テスト マネージャーへのカバレッジおよびテスト結果の追加
これで、TestRunner
が完全に構成されたので、run
関数を使用して、カバレッジを収集し、カバレッジとテスト結果をテスト マネージャーに追加します。
run(runner,suite);
Setting up ResultSetFixture Done setting up ResultSetFixture __________ Running TestHarnessWithModelCoverage .. Done TestHarnessWithModelCoverage __________ Coverage Report for simpleSwitchWithSubsystemIn/Subsystem1 /tmp/Bdoc25a_2864802_2017580/tpd64aa3bb_9dc8_45d6_a88d_c23df8fef962.html Tearing down ResultSetFixture Done tearing down ResultSetFixture __________
run
は、実行されたテスト スイートの累積カバレッジを含むレポートも生成します。レポートを表示するには、Coverage Report for sltest_ratelim
リンクを使用します。
テスト マネージャーを開きます。
sltest.testmanager.view
[結果とアーティファクト] ペインを選択して、[結果] および [BaselineTestWithCoverage] 行を展開します。
testOne
行を選択します。
[カバレッジの結果] セクションに、testOne
から sltest_ratelim
について収集されたカバレッジが表示されます。
testTwo
行を選択します。
[カバレッジの結果] セクションに、testTwo
から sltest_ratelim
について収集されたカバレッジが表示されます。
BaselineTestWithCoverage
行を選択します。
[カバレッジの結果の集計] セクションに、testOne
および testTwo
から sltest_ratelim
について収集されたカバレッジの集計が表示されます。集計結果には、指定されたカバレッジ メトリクスのフル カバレッジが表示されます。
参考
sltest.TestCase
| matlab.unittest.TestRunner
| sltest.plugins.ModelCoveragePlugin
| sltest.plugins.coverage.CoverageMetrics
| sltest.plugins.MATLABTestCaseIntegrationPlugin
| sltest.plugins.ToTestManagerLog
| matlab.unittest.plugins.DiagnosticsOutputPlugin
| verifySignalsMatch
| Simulink.SimulationOutput