Main Content

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

查看 S-Function 模块中自定义 C/C++ 代码的覆盖率结果

此示例显示如何查看模型中 S-Function 模块中的 C/C++ 代码的覆盖率结果。要查看模块中 C/C++ 代码的覆盖率结果:

  • 启用对 S-Function 覆盖率的支持。有关更多信息,请参阅Simulink 模型中自定义 C/C++ 代码的覆盖率

  • 运行仿真并查看覆盖率报告。

    S-Function 模块的覆盖率结果可以与模型其余部分在同一报告中查看。对于每个 S-Function 模块,该报告链接到该模块中 C/C++ 代码的详细覆盖率报告。

要查看本示例使用的完整代码覆盖率报告,请按照 S-Function 的覆盖率 中的步骤操作。

  1. 在覆盖率报告中,查看 S-Function 模块的覆盖率度量。

    Coverage report for the S Function block shows a cyclomatic complexity of 3, 67% decision coverage (4 out of 6 decision outcomes satisfied), 75% condition coverage (3 out of 4 condition outcomes satisfied), and 50% MCDC coverage (1 out of 2 MCDC outcomes satisfied).

    有关覆盖率报告格式的更多信息,请参阅顶层模型覆盖率报告

  2. 选择详细报告链接。S-Function 模块的代码覆盖率报告打开。

  3. 选择目录中的每个链接即可导航至报告的各个部分。

    节标题目的
    分析信息包含模型创建和最后修改的时间以及文件大小等信息。
    测试包含有关仿真的信息,例如开始和结束时间。
    摘要包含有关 S-Function 模块中的文件和函数的覆盖率信息。对于每个文件和函数,都会显示百分比覆盖率。与代码相关的覆盖率类型如下:
    覆盖率类型标签

    圈复杂度

    复杂度

    条件覆盖率

    条件

    决策覆盖率

    决策

    修正条件/决策覆盖率 (MCDC)

    MCDC

    关系边界覆盖率

    关系边界

    涵盖语句的百分比

    Stmt
    详细信息包含有关接收条件、决策或 MCDC 覆盖率的语句的覆盖率信息。信息按文件和函数分组。
    代码包含 C/C++ 代码。未涵盖的语句以粉红色突出显示。
  4. 摘要部分中,选择每个文件或函数名称以查看文件或函数中语句的覆盖率详细信息。

    Code coverage report summary shows colored bars for each metric. Blue on the bar indicates satisfied coverage, and pink indicates missing coverage. The file counterbus.c shows 75% decision coverage, 67% condition coverage, 50% MCDC, and 90% statement coverage.

  5. 仿真期间未测试的条件、决策或 MCDC 结果以粉红色突出显示。在文件或函数的详细信息中,向下滚动以记录这些 case 并进一步调查它们。

    Coverage report shows the condition input GE lower is true for 140 steps, but false for 0, resulting in incomplete coverage.

  6. 要获得未涉及的语句的概述,请导航至代码部分。此部分包含您的代码,其中未涵盖的语句以粉红色突出显示。

    Code snippet for a function that has line 22 highlighted pink, indicating that line 22 is missing coverage.

相关主题