学习记录-unittest测试方法
本文基于4.1 Release版本介绍如何使用unittest进行单元测试,4.1 Release之前的版本待后续实践后补充。其他更加细节的内容,如:unittest架构、作用,待后续学习后补充。代码分析路径:drivers/peripheral/input/bundle.json 指定test组件编译路径。"tes
·
本文基于4.1 Release版本介绍如何使用unittest进行单元测试,4.1 Release之前的版本待后续实践后补充。其他更加细节的内容,如:unittest架构、作用,待后续学习后补充。
代码分析
- 路径:drivers/peripheral/input/bundle.json
指定test组件编译路径。"test": [ "//drivers/peripheral/input/test:hdf_test_input" ],
hdf_test_input
为input驱动的测试组件名,测试其他组件,可以在对应的路径下寻找组件名。 - 路径:drivers/peripheral/input/test/BUILD.gn
对于驱动来说,每个驱动模块下都会有个test目录,存放包括unittest、fuzztest等测试的源码以及 build.gn脚本文件。group("hdf_test_input") { testonly = true deps = [ "benchmarktest:hdf_input_benchmark_test" ] if (drivers_peripheral_input_feature_model) { deps += [ "unittest/hdi:hdi_unittest_input" ] } if (drivers_peripheral_input_feature_udriver) { deps += [ "unittest/udriver:input_udriver_unittest" ] } if (drivers_peripheral_input_feature_support_ddk) { deps += [ "benchmarktest:hid_ddk_benchmark_test", "fuzztest/hidddk_fuzzer:fuzztest", "unittest/ddk:hid_ddk_unittest", ] } }
- 路径:drivers/peripheral/input/test/unittest/BUILD.gn
编译hdf_unittest_input
的源码。ohos_unittest("hdf_unittest_input") { module_out_path = module_output_path include_dirs = [ "$INPUT_ROOT_DIR/hal/include", "$INPUT_ROOT_DIR/interfaces/include", ] ··· deps = [ "$INPUT_ROOT_DIR/hal:hdi_input" ] ···
操作步骤
编译组件
编译测试组件需要在编译的产品后加上组件名,如测试rk3568中的hdf_input组件,则使用此命令:
编译成功后会在./build.sh --product-name rk3568 --build-target hdi_unittest_input
out/rk3568/tests/unittest
生成一个可执行文件,如:`hdi_unittest_input
路径:out/rk3568/tests/unittest/drivers_peripheral_input/input
注意:4.0-release中此组件为hdf_unittest_input
。传输文件
使用hdc工具,将电脑开发环境上的可执行文件,推送到设备上。
hdc命令格式为:hdc file send local remote
其中:
- local为本地文件路径
- remote为远程目标路径
使用此命令时可能会遇到两个问题: - 查看传输的文件是否为只读,如果是只读状态会报错,需要将只读状态取消。
- 目标路径权限问题,经过测试可以将目标路径设为./data路径,或者自行查看哪个路径有权限进行操作(可以设置root权限进行传输,未成功,所以没有写出)。
文件传输成功如图:运行测试
- 找到测试的可执行文件,
- 修改权限
chmod 777 hdf_test_input
或chmod a+x hdf_test_input
- 执行
./hdf_unittest_input
,等待测试完毕即可,测试结果如下图:
更多推荐
已为社区贡献8条内容
所有评论(0)