当前位置: 首页 > news >正文

泰安网站制作公司电话网络技术开发有限公司

泰安网站制作公司电话,网络技术开发有限公司,wordpress通过标签获取文章,湛江网站建设策划方案前言 由于工作需要#xff0c;要使用googletest做单元测试#xff0c;本文记录下搭建gtest单元测试环境#xff0c;并查看代码覆盖率的方法#xff0c;以备不时之需。 准备工作 编译gtest 克隆gtest源码#xff1a; git clone https://github.com/google/googletest.g…前言 由于工作需要要使用googletest做单元测试本文记录下搭建gtest单元测试环境并查看代码覆盖率的方法以备不时之需。 准备工作 编译gtest 克隆gtest源码 git clone https://github.com/google/googletest.git 使用缺省分支main并在googletest源码当前目录创建一个编译的build目录 mkdir -p build cd build 进入到build目录下执行如下命令 cmake .. make -j9 make install DESTDIR./ 编译安装完成gtest相关头文件在以下目录其中lib和usr目录在googletest根目录 ├── lib │   ├── libgmock.a │   ├── libgmock_main.a │   ├── libgtest.a │   └── libgtest_main.a └── usr└── local├── include│   ├── gmock│   └── gtest└── lib├── cmake├── libgmock.a├── libgmock_main.a├── libgtest.a├── libgtest_main.a└── pkgconfig 安装lcov macOS下需要使用lcov来生成单元测试的覆盖率报告用brew下载即可 brew install lcov 跑demo 建qt工程 至此 万事俱备现在使用qt创建一个c的工程 进入到demo的工程根目录将googletest编译安装之后的include和lib文件copy至demo的当前根目录下注意gtest目录下便是依赖文件 mingolocalhost:~/Applications/workspace/tools/unit_test$tree -L 3 . ├── build-cpp-unit-test-Desktop_arm_darwin_generic_mach_o_64bit-Debug │   ├── CMakeCache.txt │   ├── CMakeCache.txt.prev │   ├── CMakeFiles │   │   ├── 3.26.0 │   │   ├── CMakeConfigureLog.yaml │   │   ├── TargetDirectories.txt │   │   ├── cmake.check_cache │   │   ├── cpp-unit-test.dir │   │   ├── pkgRedirects │   │   └── rules.ninja │   ├── Testing │   │   └── Temporary │   ├── build.ninja │   ├── cmake_install.cmake │   ├── cpp-unit-test │   ├── output │   │   ├── Users │   │   ├── amber.png │   │   ├── cmd_line │   │   ├── emerald.png │   │   ├── gcov.css │   │   ├── glass.png │   │   ├── index-sort-f.html │   │   ├── index-sort-l.html │   │   ├── index.html │   │   ├── ruby.png │   │   ├── snow.png │   │   ├── updown.png │   │   └── v1 │   ├── qtcsettings.cmake │   └── test.info ├── cpp-unit-test │   ├── CMakeLists.txt │   ├── CMakeLists.txt.user │   └── main.cpp └── gtest├── include│   ├── gmock│   └── gtest└── lib├── libgmock.a├── libgmock_main.a├── libgtest.a└── libgtest_main.a17 directories, 29 files 编写CMakeLists  然后编写CMakeLists构建脚本 cmake_minimum_required(VERSION 3.5)project(cpp-unit-test LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)# lcov相关编译选项 #SET(GCC_COVERAGE_COMPILE_FLAGS -g -O0 -coverage -fprofile-arcs -ftest-coverage) SET(GCC_COVERAGE_COMPILE_FLAGS -g -O0 -fprofile-arcs -ftest-coverage) #SET(GCC_COVERAGE_LINK_FLAGS -coverage -lcov) #SET(GCC_COVERAGE_LINK_FLAGS -coverage) SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}) SET(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS})set(GTEST_ROOT_DIR ${PROJECT_SOURCE_DIR}/../gtest) set(GTEST_INCLUDE_DIR ${GTEST_ROOT_DIR}/include) set(GTEST_LIB_DIR ${GTEST_ROOT_DIR}/lib) message(dir${PROJECT_SOURCE_DIR})include_directories(${GTEST_INCLUDE_DIR}) #link_libraries(${GTEST_LIB_DIR}) set(GTEST_LIBS ${GTEST_LIB_DIR}/libgtest.a ${GTEST_LIB_DIR}/libgtest_main.a ${GTEST_LIB_DIR}/libgmock.a ${GTEST_LIB_DIR}/libgmock_main.a)#target_link_libraries(cpp-unit-test gcov) add_executable(cpp-unit-test main.cpp) target_link_libraries(cpp-unit-test PRIVATE ${GTEST_LIBS})install(TARGETS cpp-unit-testLIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})写一个最简单的测试用例 #include iostreamusing namespace std;#include gtest/gtest.h #include gmock/gmock.hTEST(mytest, mytest1) {EXPECT_TRUE(1); }int main() {cout Hello World! endl;return RUN_ALL_TESTS(); }运行 代码覆盖率 在上图的qt工程命令行里可以看到用例的通过数和失败数但还不够直观此处使用lcov来生成html网页形式查看代码覆盖率 进入到demo的构建目录下 mingolocalhost:~/Applications/workspace/tools/unit_test/build-cpp-unit-test-Desktop_arm_darwin_generic_mach_o_64bit-Debug$ll total 3352 drwxr-xr-x 16 mingo staff 512 6 15 14:29 ./ drwxr-xr-x 5 mingo staff 160 6 15 13:30 ../ drwxr-xr-x 3 mingo staff 96 6 15 13:30 .cmake/ -rw-r--r-- 1 mingo staff 149532 6 15 14:26 .ninja_deps -rw-r--r-- 1 mingo staff 383 6 15 14:26 .ninja_log drwxr-xr-x 4 mingo staff 128 6 15 13:30 .qtc_clangd/ -rw-r--r-- 1 mingo staff 13148 6 15 13:30 CMakeCache.txt -rw-r--r-- 1 mingo staff 13148 6 15 13:30 CMakeCache.txt.prev drwxr-xr-x 9 mingo staff 288 6 15 14:26 CMakeFiles/ drwxr-xr-x 3 mingo staff 96 6 15 13:30 Testing/ -rw-r--r-- 1 mingo staff 11042 6 15 14:26 build.ninja -rw-r--r-- 1 mingo staff 2238 6 15 13:30 cmake_install.cmake -rwxr-xr-x 1 mingo staff 1416352 6 15 14:26 cpp-unit-test* drwxr-xr-x 15 mingo staff 480 6 15 14:29 output/ -rw-r--r-- 1 mingo staff 52 6 15 14:26 qtcsettings.cmake -rw-r--r-- 1 mingo staff 25803 6 15 14:28 test.info 然后执行如下命令  lcov -c -o test.info -d . 报了如下错 geninfo: ERROR: (inconsistent) gtest-internal.h:454: function _ZN7testing8internal15TestFactoryImplI19mytest_mytest1_TestEC1Ev end line 444 less than start line 454. Cannot derive function end line. See lcovrc man entry for derive_function_end_line.(use geninfo --ignore-errors inconsistent ... to bypass this error) 解决办法 lcov -c -o test.info -d . --ignore-errors inconsistent 可以看到执行成功之后会在当前目录下生成test.info文件  test.info 然后在当前目录下创建output目录用来存放覆盖率报告相关的html文件  mkdir -p output genhtml test.info -o ./output --ignore-errors inconsistent 以上命令执行成功会在如下output目录下产生html相关的文件  mingolocalhost:~/Applications/workspace/tools/unit_test/build-cpp-unit-test-Desktop_arm_darwin_generic_mach_o_64bit-Debug$tree -L 2 . ├── CMakeCache.txt ├── CMakeCache.txt.prev ├── CMakeFiles │   ├── 3.26.0 │   ├── CMakeConfigureLog.yaml │   ├── TargetDirectories.txt │   ├── cmake.check_cache │   ├── cpp-unit-test.dir │   ├── pkgRedirects │   └── rules.ninja ├── Testing │   └── Temporary ├── build.ninja ├── cmake_install.cmake ├── cpp-unit-test ├── output │   ├── Users │   ├── amber.png │   ├── cmd_line │   ├── emerald.png │   ├── gcov.css │   ├── glass.png │   ├── index-sort-f.html │   ├── index-sort-l.html │   ├── index.html │   ├── ruby.png │   ├── snow.png │   ├── updown.png │   └── v1 ├── qtcsettings.cmake └── test.info10 directories, 22 files 进入到output目录下执行如下命令 open index.html
http://www.pierceye.com/news/944687/

相关文章:

  • wordpress 插件设计搜索引擎优化常用方法
  • ps怎样做网站大图wordpress固定链接精简
  • 学校网站推广方案商城系统app
  • 图书馆管理系统产品介绍网站如何做seo
  • 威县企业做网站做网站游戏的网站有哪些
  • 如何做网站二维码广州营销型网站建设
  • 网站网页转小程序教程网站建设公司 枫子伽叩
  • 做民宿哪家网站最好网站推广技巧有哪些?
  • 北京做网站推广兼职wordpress 分段循环
  • 大气学校网站模板直播网站建设书籍
  • 榆林市住房和城市建设局网站网络系统管理比赛
  • 学校网站建设论文哪里网站备案最快
  • 上海公交建设公司官网seo排名优化工具
  • 网站设计与网站制作什么是网络营销中最容易出问题的步骤
  • 网站做自适应好不好网站开发结构图
  • wordpress sky主题东莞整站优化排名
  • 黑龙江 建设监理协会网站开发公司资质查询
  • 中标建设集团有限公司 网站怀化主要网站
  • 国外网站seo国外企业网站建设
  • 很简单的做设计的网站网站建设会议讲话
  • 泉港区建设局网站廉政配置wordpress环境
  • 公众号开发培训网站谷歌优化怎么做
  • 网站设计合理汕头市潮南区紧急提醒
  • 国外网站流量查询企业网站报价单
  • 聊城高唐网站建设公司wordpress设置域名
  • 有帮忙做儿童房设计的网站吗东莞横沥网站制作
  • 国外网站模板欣赏WordPress 编辑器修改默认字号
  • 厦门同安网站建设视频购物网站开发方案
  • 什么是建设网站的主题兼职做问卷调查的网站
  • 装饰网站建设软件下载公司旅游视频网站模板免费下载