Main Content

getMetrics

メトリクス結果にアクセスする

R2020b 以降

説明

results = getMetrics(metricEngine,metricIDs) は、metricIDs で指定したメトリクスについて、指定した metric.Engine オブジェクトのメトリクス結果を返します。metric.Engine のメトリクス結果を収集するには、関数 execute を使用します。次に、getMetrics を使用して結果にアクセスします。

なお、関数 getMetrics (Fixed-Point Designer) は Fixed-Point Designer™ ドキュメンテーションにもあります。

results = getMetrics(metricEngine,metricIDs,'ArtifactScope',scope) は、指定した scope のアーティファクトのメトリクス結果を返します。たとえば、scope をプロジェクト内のユニットに指定できます。

すべて折りたたむ

プロジェクト内の要件ベースのテスト アーティファクトに関するメトリクス結果を収集します。

モデルとテスト アーティファクトを含むプロジェクトを開きます。この例では、MATLAB® コマンド ウィンドウで次のように入力します。

openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample");
openProject("cc_CruiseControl");

metric.Engine オブジェクトを作成します。metric.Engine オブジェクトを使用して、現在のプロジェクトについてのメトリクス結果を収集できます。

metric_engine = metric.Engine();

metric_engine のトレース情報を更新して、アーティファクト情報が確実に最新の状態になるようにします。

updateArtifacts(metric_engine)

metric.Engine オブジェクトに対して関数 execute を使用してメトリクス 'RequirementsPerTestCase' の結果を収集します。

execute(metric_engine,'RequirementsPerTestCase');

関数 getMetrics を使用して結果にアクセスします。結果オブジェクトの配列を変数 results に代入します。

results = getMetrics(metric_engine,'RequirementsPerTestCase');

配列内の metric.Result オブジェクトのプロパティを使用してメトリクスの結果データにアクセスします。

for n = 1:length(results)
    disp(['Test Case: ',results(n).Artifacts(1).Name])
    disp(['  Number of Requirements: ',num2str(results(n).Value)])
end

プロジェクト内の 1 つのユニットに関するメトリクスを収集します。ユニットを指定し、そのモデルまでトレースするアーティファクトのみのメトリクスを収集します。

モデルが含まれるプロジェクトを開きます。この例では、MATLAB コマンド ウィンドウで次のように入力します。

openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample");
openProject("cc_CruiseControl");

プロジェクトの metric.Engine オブジェクトを作成します。

metric_engine = metric.Engine();

metric_engine のトレース情報を更新して、アーティファクト情報が確実に最新の状態になるようにします。

updateArtifacts(metric_engine)

ユニット モデル db_DriverSwRequest のパスを表す変数を作成します。

modelPath = fullfile(pwd, 'models', 'db_DriverSwRequest.slx');

エンジン オブジェクトに対して関数 execute を使用し、スコープを db_DriverSwRequest モデルに制限して、メトリクス 'RequirementsPerTestCase' の結果を収集します。

execute(metric_engine,'RequirementsPerTestCase',...
'ArtifactScope',{modelPath, 'db_DriverSwRequest'});

関数 getMetrics を使用して結果にアクセスします。

results = getMetrics(metric_engine,'RequirementsPerTestCase');
for n = 1:length(results)
    disp(['Test Case: ',results(n).Artifacts(1).Name])
    disp(['  Number of Requirements: ',num2str(results(n).Value)])
end
Test Case: Set button
  Number of Requirements: 0
Test Case: Resume button
  Number of Requirements: 1
Test Case: Decrement button short
  Number of Requirements: 2
Test Case: Enable button
  Number of Requirements: 1
Test Case: Increment button hold
  Number of Requirements: 1
Test Case: Increment button short
  Number of Requirements: 2
Test Case: Cancel button
  Number of Requirements: 1
Test Case: Decrement button hold
  Number of Requirements: 1

入力引数

すべて折りたたむ

メトリクス結果にアクセスするメトリクス エンジン オブジェクト。metric.Engine オブジェクトとして指定します。

収集するメトリクスのメトリクス識別子。文字ベクトル、文字ベクトルの cell 配列、string、または string 配列として指定します。

関数getAvailableMetricIdsを使用して、使用可能なメトリクス識別子のリストを返すことができます。

メトリクスおよびその識別子の詳細については、以下を参照してください。

例: 'slcomp.OverallCyclomaticComplexity'

例: {'slcomp.OverallMATLABeLOC', 'slcomp.OverallSignalLines'}

例: 'TestCasesPerRequirementDistribution'

例: {'slcomp.mt.TestStatus', 'slcomp.mt.CoverageBreakdown'}

メトリクス結果を収集するプロジェクト ファイルのパスおよび識別子。文字ベクトルの cell 配列または string 配列として指定します。1 番目のエントリはプロジェクト ファイルの絶対パス、2 番目のエントリはプロジェクト ファイル内のオブジェクトの識別子です。

ユニット モデルでは、1 番目のエントリはモデル ファイルの絶対パス、2 番目のエントリはブロック線図の名前です。この引数を使用すると、メトリクス エンジンは、指定したプロジェクト ファイルまでトレースするアーティファクトの結果を収集します。

例: {'C:\work\MyModel.slx', 'MyModel'}

出力引数

すべて折りたたむ

メトリクス結果。metric.Result オブジェクトの配列として返されます。

代替機能

アプリ

ダッシュボード ユーザー インターフェイスを使用してメトリクス結果を表示することもできます。

バージョン履歴

R2020b で導入