#鸿蒙通关秘籍#如何在HarmonyOS NEXT中集成和使用GTest进行C++单元测试?

HarmonyOS
2024-12-03 11:14:39
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
星辰海JS
  1. 下载并编译GTest
    GitHub下载GTest压缩包并解压。按照鸿蒙系统的三方库适配指南进行配置,确保构建符合arm64-v8a平台的产物并放入相应的lib目录。

  2. 引入头文件及链接库
    将GTest的头文件引入项目中,可以放置在cpp目录下。接着,将编译生成的gtest和gtest_main动态链接库放置到模块的libs目录中。

  3. 编写测试代码
    创建设备测试代码文件,使用GTest框架进行代码测试,如下所示:

    #include "gtest/ohosTest.h"
    #include "dl_util.h"
    #include <dlfcn.h>
    const char libCurlDownload[256] = "libcurlDownload.so";
    
    TEST(DlUtilTest, loadLibraryTest) {
        void *handler = load_library(libCurlDownload);
        ASSERT_NE(handler, nullptr);
        dlclose(handler);
    }
    
    GTEST_API_ int main(int args, char **argv) {
        printf("Running main() from %s\n", __FILE__);
        testing::InitGoogleTest(&args, argv);
        return RUN_ALL_TESTS();
    }
    
  4. 配置CMakeLists
    在CMakeLists中添加测试文件的编译和链接指令:

    link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/)
    set(TEST_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../)
    file(GLOB_RECURSE TEST_SRC_FILES ${TEST_SRC_DIR}/*.cpp)
    add_executable(util_test ${TEST_SRC_FILES} dl_util.cpp)
    target_link_libraries(util_test PUBLIC gtest gtest_main libace_napi.z.so libcurlDownload.so libhilog_ndk.z.so librawfile.z.so)
    
  5. 生成并执行可执行文件
    执行CMake命令生成util_test可执行文件,并将其推送到设备进行测试。

    #!/bin/bash
    EXECUTABLE_FILE_NAME=util_test
    LIB_DIR="libs/arm64-v8a"
    EXE_DIR="build/default/intermediates/cmake/default/obj/arm64-v8a"
    LIB_DIR=$(cd "$LIB_DIR" && pwd)
    EXE_DIR=$(cd "$EXE_DIR" && pwd)
     
    for file in "$LIB_DIR"/*; do
        if [ -f "$file" ]; then
            hdc file send "$file" "/data/local/tmp/"
        fi
    done
    
    hdc file send "${EXE_DIR}/${EXECUTABLE_FILE_NAME}" /data/local/tmp/
    hdc shell chmod +x /data/local/tmp/${EXECUTABLE_FILE_NAME}
    hdc shell "export LD_LIBRARY_PATH=/data/local/tmp; /data/local/tmp/${EXECUTABLE_FILE_NAME}"
    
分享
微博
QQ
微信
回复
2024-12-03 11:31:21
相关问题
HarmonyOS怎么进行单元测试
137浏览 • 1回复 待解决
如何对UI描述进行单元测试
684浏览 • 1回复 待解决
鸿蒙单元测试怎么实现
7781浏览 • 1回复 待解决
HarmonyOS 单元测试Local Test 问题
483浏览 • 1回复 待解决
单元测试文件如何能运行起来
2481浏览 • 1回复 待解决
HarmonyOS 是否支持cucumbor单元测试
283浏览 • 1回复 待解决
HarmonyOS 单元测试 自动化测试方案
108浏览 • 1回复 待解决
HarmonyOS单元测试如何引入context
410浏览 • 1回复 待解决
怎么写单元测试用例?
2270浏览 • 1回复 待解决