环境准备
在Linux上安装 hdc 工具

下载完成后,逐步解压,如图所示,最终获取到Linux版本工具链


上传至服务器 unzip命令解压
vim ~/.bashrc
# 粘贴以下至文件,/path/to/toolchains为存放工具链的位置
export PATH=$PATH:/path/to/toolchains
source ~/.bashrc
# 测试命令
hdc --help
# 安装依赖
sudo apt install lcov dos2unix && pip install lxml selectolax CppHeaderParser找到 ohos_master/test/testfwk/developer_test/config/user_config.xml 填写ip和端口 
- windows 系统上输入hdc shell测试连接,左边出现#代表成功
- linux终端上测试连接前首先在windows系统上输入”hdc -m -s 0.0.0.0:8710”建立服务端
- 然后在linux终端输入”hdc -s 服务端ip:8710 list targets” ,左边出现#代表成功。
- hdc –v 查看版本
编译命令只是示例,具体需要变更,更改--build-target后面的目标
# 版本编译-带插件编译
./build.sh --product-name rk3568 --ccache --build-target bundle_framework --gn-args window_manager_feature_coverage=true
# 测试套编译-带插件编译
./build.sh --product-name rk3568 -ccache -T foundation/bundlemanager/bundle_framework:test_target --gn-args window_manager_feature_coverage=true./build.sh --product-name rk3568 --ccache -T foundation/bundlemanager/bundle_framework:test_target --gn-args window_manager_feature_coverage=true3.测试框架测试:在鸿蒙仓的根目录运行命令./test/testfwk/developer_test/start.sh
选择rk3568回车,
run –t UT –tp 部件名 –ts 测试套 -cov coverage
# 单跑ut
run -t UT -tp bundle_framework
# 跑覆盖率
run -t UT -tp bundle_framework -cov coverage这一步执行结束,就会生成覆盖率报告,根据日志输出找到报告。
五、添加代码覆盖率
2./etc/lcovrc 配置修改
lcov_branch_coverage = 1
genhtml_branch_coverage = 13.BUILD.gn脚本修改 编译阶段的BUILD.gn脚本内涉及开发代码(测试代码除外)编译链接操作的cflags_cc项,ldflags项,cflags项里全部添加一个"--coverage"
4.代码添加注释(可以提高代码覆盖率) 执行
python3 test/testfwk/developer_test/localCoverage/restore_comment/build_before_generate.py内部命令行继续执行 “run –tp 部件名”
上述操作会备份一份代码,然后批量在原有代码的每一行添加注释。手动执行python3 restore_source_code.py会还原代码
5.修改all_subsystem_config.json 打开test/testfwk/developer_test/localCoverage/all_subsystem_config.json 按照格式添加部件
6.执行测试框架 执行 ./test/testfwk/developer_test/start.sh 内部命令行继续执行 “run –t UT –tp 部件名 –ts 测试套 –cov coverage”
7.查看结果 成功之后在test/testfwk/developer_test/localCoverage/codeCoverage/results/coverage/reports/cxx目录下有html文件夹,可以移动到其他文件夹打开(每次执行测试框架,html文件夹会被覆盖),下图是结果(打开index.html文件)。 
如果有多余的文件夹需要排除,打开./test/testfwk/developer_test/localCoverage/codeCoverage/mutilProcess_CodeCoverage.py,在cut_info函数里的remove变量里添加排除路径可以用通配符,如’/v1/’ 
8.如果字符编码相关的错误,检查是否是utf-8,换行是否是LF,可以用vscode查看dos2unix修改
资料: https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/测试子系统.md#/openharmony/docs/blob/master/zh-cn/device-dev/device-test/xdevice.mdhttps://gitee.com/openharmony/testfwk_developer_test
