本页内容

通过 Coco 设置代码覆盖率

借助 Coco,您可以测量和分析测试的代码覆盖率。以下各节介绍了如何为项目配置代码覆盖率功能。有关在Qt Creator 中查看结果的更多信息,请参阅《查看 Coco 生成的代码覆盖率报告》

要使用该插件,您必须下载并安装 Coco 6.0 或更高版本。

注意:请启用 Coco 插件才能使用它。

设置 Coco 安装目录

转至Preferences > “Coco ” 以设置 Coco 安装目录。通常情况下,无需更改默认值。

为 Coco 创建构建配置

若要为使用 qmake 或 CMake 构建的Qt Creator 项目创建构建配置:

  1. 转到Projects >Build Settings
  2. 选择一个现有的构建配置(例如“Debug”),然后选择“Clone ”将其克隆为新名称(例如“DebugCoverage”)。
  3. 配置该克隆项目以供 Coco 使用。

请勿使用同一构建配置在代码覆盖率构建与常规构建之间来回切换。

Build Settings > “Build Steps ” > “Coco code coverage ” 显示该构建配置的代码覆盖率是开启还是关闭。选择“Enable Coverage ”或“Disable Coverage ”以开启或关闭代码覆盖率。

在构建步骤中设置代码覆盖率

为项目设置代码覆盖率

要为项目指定代码覆盖率设置,请转至“Projects ” > “Project Settings ” > “Coco Code Coverage ”。

Coco 代码覆盖率设置

设置用途
Enable code coverage for build configuration <name>用于为某个构建配置启用或禁用代码覆盖率。
CoverageScanner Options代码覆盖率选项(可选)。
Exclude File将文件从仪器化中排除。
Exclude Directory将某个目录从仪器化中排除。
Override输入命令以将其添加到设置文件的末尾。当常规配置标志不足以满足需求时,请使用此选项。
Changed Build Settings列出已更改的项目构建设置。
Revert从当前设置文件中重新加载覆盖率设置。
Save 以及Save & Re-configure将设置写入设置文件,并在必要时重新配置项目。

如果代码覆盖率功能已启用,插件会生成一个设置文件,构建工具会优先读取该文件。它会更改构建过程,使用 Coco 编译器封装程序代替原始编译器。该设置文件始终位于项目源代码的根目录下。其中还包含代码覆盖率标志和可能的覆盖设置。请将其提交到版本控制系统以保留这些设置。

qmake 项目

对于 qmake 项目,配置文件即为cocoplugin.prf 功能文件

对于命令行构建,请使用以下附加选项运行qmake

CONFIG+=cocoplugin COCOPATH=<Coco directory>

此外,请将环境变量QMAKEFEATURES 设置为cocoplugin.prf 所在的目录。

CMake 项目

对于 CMake 项目,配置文件是名为cocoplugin.cmake 的 CMake 缓存预加载脚本。此外,编译器文件 cocoplugin-gcc.cmakecocoplugin-clang.cmakecocoplugin-visualstudio.cmake 会创建在同一目录下。这些文件是进行命令行构建所必需的。

若要通过命令行构建该项目(使用 GCC 编译时),请输入:

cmake <other options> -C <project dir>/cocoplugin-gcc.cmake

文件cocoplugin-gcc.cmake 包含cocoplugin.cmake

如果您使用的是 GCC、Clang 或 MSVC 以外的其他编译器,请修改其中一个对应该编译器的编译器配置文件。

另请参阅 “配置项目以进行构建”、“启用和禁用插件”“查看 Coco 的代码覆盖率报告”、“配置编辑器”以及“分析代码”

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.