主要内容

本页采用了机器翻译。点击此处可查看英文原文。

execute

收集度量结果

说明

results = execute(metricEngine,metricIDs) 将您在 metricIDs 中指定的度量的结果收集到指定的 metric.Engine 对象中。

请注意,Fixed-Point Designer™ 文档中还有一个函数 execute (Fixed-Point Designer)

示例

results = execute(metricEngine,metricIDs,'ArtifactScope',scope) 收集您指定的 scope 中工件的度量结果。例如,您可以将 scope 指定为工程中的一个单元。

示例

示例

全部折叠

收集工程中设计工件的度量结果。

打开一个包含要分析的模型的工程。对于此示例,在 MATLAB® 命令行窗口中,输入:

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

创建一个 metric.Engine 对象。您可以使用 metric.Engine 对象来收集当前工程的度量结果。

metric_engine = metric.Engine();

通过执行度量引擎,收集度量 slcomp.OverallCyclomaticComplexity 的结果。有关该度量的详细信息,请参阅模型可维护性度量

execute(metric_engine,'slcomp.OverallCyclomaticComplexity');

使用函数 getMetrics 访问结果。将结果对象数组赋值给 results 变量。

results = getMetrics(metric_engine,'slcomp.OverallCyclomaticComplexity');

通过使用 results 数组中 metric.Result 对象的属性来访问度量结果数据。

for n = 1:length(results)
    disp(['Model: ',results(n).Scope.Name])
    disp(['  Overall Design Cyclomatic Complexity: ',num2str(results(n).Value)])
end
Model: cc_DriverSwRequest
  Overall Design Cyclomatic Complexity: 9
Model: cc_ThrottleController
  Overall Design Cyclomatic Complexity: 4
Model: cc_ControlMode
  Overall Design Cyclomatic Complexity: 22
Model: cc_CruiseControl
  Overall Design Cyclomatic Complexity: 1
Model: cc_LightControl
  Overall Design Cyclomatic Complexity: 4

有关如何收集设计工件度量的详细信息,请参阅以编程方式收集模型可维护性度量

收集工程中基于需求的测试工件的度量结果。

打开一个包含模型和测试工件的工程。对于此示例,在 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

收集工程中一个单元的度量。指定模型,并仅收集与该模型相关的工件的度量。

打开包含该模型的工程。对于此示例,在 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 函数收集度量 'RequirementsPerTestCase' 的结果,并将范围限制在 db_DriverSwRequest 模型。

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

输入参数

全部折叠

要收集度量结果的度量引擎对象,指定为 metric.Engine 对象。

要收集的度量的度量标识符,可以指定为字符向量、字符向量的元胞数组、字符串或字符串数组。

您可以使用函数 getAvailableMetricIds 返回可用度量标识符的列表。

有关度量及其标识符的信息,请参阅:

示例: 'slcomp.OverallCyclomaticComplexity'

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

示例: 'TestCasesPerRequirementDistribution'

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

要收集度量结果的工程文件的路径和标识符,以字符向量的元胞数组或字符串数组的形式指定。第一个条目是工程文件的完整路径,第二个条目是工程文件中对象的标识符。

对于单元模型,第一个条目是模型文件的完整路径,第二个条目是模块的名称。使用此参量时,度量引擎会收集与指定工程文件相关的工件的结果。

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

输出参量

全部折叠

度量结果以 metric.Result 对象数组的形式返回。

替代功能

App

您还可以通过仪表盘用户界面收集度量结果。

版本历史记录

在 R2020b 中推出

全部展开