第二章UT单元测试——GTest框架实例

更新时间:2023-07-19 05:37:42 阅读: 评论:0

第⼆章UT单元测试——GTest框架实例系列⽂章⽬录
⽂章⽬录
前⾔
第⼀章介绍了GTest通⽤构建说明,本⽂就按照说明中推荐的⽅法搭建⼀套GTest框架实例吧。
提⽰:以下是本篇⽂章正⽂内容,下⾯案例可供参考
⼀、环境配置
本⽂使⽤Linux环境。(后续补充)
⼆、使⽤步骤
1.添加待测源码
,或者导⼊已有代码。
example.cpp(⽰例):
蜂蜜英语
#include<stdio.h>
int main()
{
printf("Hello gtest\n");
}
2.修改cmake⽂件
cmake_minimum_required(VERSION 2.8.12)
project(googletest-download NONE)
include(ExternalProject)
ExternalProject_Add(googletest
GIT_REPOSITORY    /google/googletest.git
GIT_TAG          master
SOURCE_DIR        "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
BINARY_DIR        "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND    ""
INSTALL_COMMAND  ""
TEST_COMMAND      ""
)
<:
cmake_minimum_required(VERSION 3.16)
集思广益近义词project(GoogleTestExpl)
# Download and unpack googletest at configure time
configure_in )
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
if(result)
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
endif()
大班绘本故事教案
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
if(result)人流后吃什么水果
message(FATAL_ERROR "Build step for googletest failed: ${result}")
endif()
# Prevent overriding the parent project's compiler/linker
# ttings on Windows
t(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
# Add googletest directly to our build. This defines
# the gtest and gtest_main targets.
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src
${CMAKE_CURRENT_BINARY_DIR}/googletest-build
EXCLUDE_FROM_ALL)
# Now simply link against gtest or gtest_main as needed. Eg
add_executable(example example.cpp)
target_link_libraries(example gtest_main)
add_test(NAME example_test COMMAND example)
# batch compile samples
file(GLOB_RECURSE utfiles ${CMAKE_CURRENT_SOURCE_DIR} samples/*_unittest)
file(GLOB_RECURSE srcfiles ${CMAKE_CURRENT_SOURCE_DIR} samples/*[0-9])
list(LENGTH utfiles utfileslen)
message(STATUS "utfileslen=${utfileslen}")
list(LENGTH srcfiles srcfileslen)
message(STATUS "srcfileslen=${srcfileslen}")
# get all srcs
foreach(srcfile IN LISTS srcfiles)
file(RELATIVE_PATH srcfilename ${CMAKE_CURRENT_SOURCE_DIR}/samples ${srcfile})
list(APPEND srcfilenames ${srcfilename})
endforeach(srcfile IN LISTS srcfiles)
message(STATUS "srcfilenames=${srcfilenames}")
# compile utfile with srcs
foreach(utfile IN LISTS utfiles)
file(RELATIVE_PATH utfilename ${CMAKE_CURRENT_SOURCE_DIR}/samples ${utfile})
list(FIND utfiles ${utfile} i)
# get filename without extension
get_filename_component(targetname ${utfile} NAME_WE)
add_executable(${targetname} ${utfile} ${srcfiles})
target_link_libraries (${targetname} gtest_main)
add_test(NAME ${targetname}_test COMMAND ${targetname})
message(STATUS "Recipe ${i}: test=${targetname}_test, target=${targetname}, ut=${utfilename}, src=${srcfilenames}, link=gtest_main") endforeach(utfile IN LISTS utfiles)
挽留爱人的话3.添加⾃动化脚本
tup.sh:
mkdir build
cd build
害你在心口难开cmake ..
make -j4
# test samples
../test_samples.sh
# test example
../test_example.sh
test_samples.sh:
# get this script path
curPath=$(dirname$(readlink -f "$0"))
echo""
cd$curPath/build
pwd
# execute sample programs
for file in`ls -dv sample[0-9]*`
do
echo"testing $"
./$file
done
test_example.sh:
# get this script path
curPath=$(dirname$(readlink -f "$0"))
echo""
cd$curPath/build
pwd
# execute sample programs
for file in`ls -dv example`
do
echo"testing $"
./$file
done
4.运⾏GTest实例
README.md:
A simple framework implementation of GoogleTest.
Linux command:
房屋平面图怎么画
1. chmod +x tup.sh test_samples.sh test_example.sh
2. ./tup
关于习惯的故事5.运⾏结果
测试结果待补充。
总结
以上就是今天要讲的内容,本⽂仅仅简单介绍了GTest框架的使⽤,⽽GTest框架提供了⼤量能使我们快速便捷地模拟和测试的⼯具和⽅法。

本文发布于:2023-07-19 05:37:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1087356.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:框架   添加   补充
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图