diff --git a/zh-cn/device-dev/device-test/developer_test.md b/zh-cn/device-dev/device-test/developer_test.md index 339b1bb21583835f08cdab06c4f73b00e280745e..d9b79acffae9a77b1f2973c5fa76046b1bcd501f 100644 --- a/zh-cn/device-dev/device-test/developer_test.md +++ b/zh-cn/device-dev/device-test/developer_test.md @@ -1247,7 +1247,52 @@ test/developertest/reports/xxxx_xx_xx_xx_xx_xx -### 最新测试报告 -``` -reports/latest -``` +## 执行覆盖率用例 +各子系统可按照以下方式,执行用例,生成gcda数据后方可生成覆盖率报告。 + +1. (可选执行)为了屏蔽非核心代码产生的冗余分支数据,可以在源码编译之前进入/test/testfwk/developer_test/localCoverage/restore_comment目录下执行: + + python3 build_before_generate.py + + 选择编译时要屏蔽的部件,执行命令例如: + + run -tp partname + run -tp partname1 partname2 +2. 编译版本之前首先修改编译选项,在涉及到的子系统build.gn文件中添加cflags或cflags_cc及ldflags选项,都需要加--coverage字段: + + ldflags = [ "--coverage" ] + C: cflags = [ "--coverage" ] + C++: cflags_cc = [ "--coverage" ] + + **推荐:** 也可以参考窗口子系统的方式(推荐这种方式),参考链接:https://gitee.com/openharmony/window_window_manager/pulls/1274/files +3. 执行覆盖率用例需要安装以下依赖包: + + 1)安装lcov, 安装命令:sudo apt install lcov + 2)安装dos2unix, 安装命令:apt install dos2unix. + 3)安装lxml, 安装命令: pip install lxml + 4)安装selectolax, 安装命令: pip install selectolax + 5)安装CppHeaderParser, 安装命令 pip install CppHeaderParser + +4. 远程映射设备,修改usr_config.xml中的ip号,设备映射方式查看上面介绍的远程端口映射。 + + + + + + + + +5. 执行 ./start.sh,输入运行命令,示例如下: + + run -t UT -tp 部件名 -cov coverage + run -t UT -ss 子系统名 -cov coverage + run -t UT -ss 子系统名 -tp 部件名 -cov coverage + run -t UT MST ST -tp 部件名 -cov coverage + + **注意:** 执行以上命令必须添加 -cov coverage 参数 + +6. 从以下路径获取覆盖率报告: + + 代码覆盖率报告:/test/testfwk/developer_test/localCoverage/codeCoverage/results/coverage/reports/cxx/html + + 接口覆盖率报告:/test/testfwk/developer_test/localCoverage/interfaceCoverage/results/coverage/interface_kits/html