如何创建Google test shared library(dll)和static library(lib),并编写测试用例

这篇具有很好参考价值的文章主要介绍了如何创建Google test shared library(dll)和static library(lib),并编写测试用例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 从Github下载google test源码
  2. 确保本地安装Visual Studio和CMake GUI,本次测试使用VS2017及Cmake GUI 3.20.5
  3. 解压googletest-main,打开Cmake GUI,配置源码路径(googletest-main路径),和生成路径(googletest-main/build),需要在生成路径下创建"build"文件夹,记得检查一下MSVC编译器路径在环境变量目录中
  4. 点击"Configure"按钮,在弹出的对话框中,选择"Specify the generator for this project" 为Visual Studio 15 2017编译器,"Option platform for generator(if empty, generator uses: Win32)"为x64,这里生成64位版本库,其他保持默认设置
Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.19044.
The C compiler identification is MSVC 19.16.27045.0
The CXX compiler identification is MSVC 19.16.27045.0
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe - skipped
Detecting C compile features
Detecting C compile features - done
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe - skipped
Detecting CXX compile features
Detecting CXX compile features - done
Found Python3: D:/wecode_build_tools/mingw/bin/python3.8.exe (found version "3.8.2") found components: Interpreter 
Looking for pthread.h
Looking for pthread.h - not found
Found Threads: TRUE  
Configuring done

配置完毕后,在Configure上的选择框中,勾选"Build_SHRAED_LIBS",点击Configure按钮旁边的"Generate"按钮

Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.19044.
Configuring done
Generating done

生成完毕后,点击"Generate"按钮旁边的"Open Project"按钮,打开VS build项目,选择"Release"/“x64"进行ALL_BUILD”,生成完毕后,在“\googletest-main\build\bin\Release”目录下就会生成dll,在“、googletest-main\build\lib\Release”目录下生成lib,有了这些库,就可以创建GTest测试用例了,通常只需要"gtest/gtest_main"及"gmock/gmock_main"这4个dll/lib文件即可。

  1. 创建GTest测试用例:本次测试使用Visual Studio,使用CMake配合MinGW类型,只需要额外创建一个CMakeLists.txt即可。
    创建一个VS console app程序,将googletest-main\include\gtest目录拷贝至项目目录下,添加到项目include path,拷贝gtest/gtest_main lib到项目目录下,添加到项目link目录和项;编写func.h/func.cpp作为待测试API,编写func_test.cpp作为单元测试,编写main程序如下:
    main.cpp
#include "googletest/inc/gtest/gtest.h"

int main()
{
    std::cout << "Hello GTest!\n";

    ::testing::InitGoogleTest();
    return RUN_ALL_TESTS();
}

func_test.cpp

#include "googletest/inc/gtest/gtest.h"
#include "func.h"

TEST(func, add_test) {
    int a = 1, b = 2;
    int c = 3;
    ASSERT_EQ(c, add(a, b));
}

func.h

int add(int a, int b);

func.cpp

#include "func.h"

int add(int a, int b) {
    return a + b;
}

编译后,将gtest/gtest_main dll放在exe生成目录下,运行:

Hello GTest!
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from func
[ RUN      ] func.add_test
[       OK ] func.add_test (4607 ms)
[----------] 1 test from func (4608 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (4609 ms total)
[  PASSED  ] 1 test.

可以为不同的代码模块创建不同的测试用例,放在独立的test.cpp文件中,所有的用例都会执行。文章来源地址https://www.toymoban.com/news/detail-640565.html

到了这里,关于如何创建Google test shared library(dll)和static library(lib),并编写测试用例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Eclipse启动故障排除指南:eclipse 启动报错如何解决 Failed to load the JNl shared library “C:\ProgramFilesWjavaljdk-1.8

    Eclipse启动故障排除指南:eclipse 启动报错如何解决 Failed to load the JNl shared library “C:\ProgramFilesWjavaljdk-1.8

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师! 《100天精通Golang(基础入门篇)》 — 踏入

    2024年03月21日
    浏览(10)
  • 如何编写DLL文件

    如何编写DLL文件

    阅读本文请首先学习C++以及C语言的使用,这是基础 DLL文件: 中文翻译为动态链接库,windows系统程序提供了很多的可以被调用的可执行文件,就像我们软件开发的时候,从来没有自己去写一个程序的图形化界面什么的,这是因为Windows系统都给我们提供了,我们只需要去调用

    2024年02月05日
    浏览(10)
  • .lib 文件,.dll 文件,.sln 文件都是干嘛的,他们各自都哪些内容,是如何生成这些文件的

    .lib 文件、 .dll 文件和 .sln 文件都是与 Microsoft Visual Studio 开发工具相关的文件。 .lib 文件(静态库文件): .lib 文件是静态库文件,包含一组对象文件的二进制代码和符号信息,可以被编译器链接到可执行文件中。当编译器编译程序时,它将 .a 文件(Linux)或 .lib 文件(Win

    2024年02月15日
    浏览(7)
  • 深入浅出 testing-library

    深入浅出 testing-library

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 本文作者:佳岚 The more your tests resemble the way your software is used, the more confidence they can give you. 您的测试越接近软件的使用方式,它们就越

    2024年02月19日
    浏览(6)
  • 如何解决“library load load opencv_core_parallel_tbb460_64d.dll =>FAILED”类的信息

    如何解决“library load load opencv_core_parallel_tbb460_64d.dll =>FAILED”类的信息

    如何解决“library load load opencv_core_parallel_tbb460_64d.dll =FAILED”类的信息 对于这类信息不会影响release的发布版结果,但是debug会有错误信息输出,如果是强迫症患者可以考虑以下的两种方法: 1、直接将opencv的Log日志等级修改,比如:OPENCV_LOG_LEVEL=e,这样可以避免输出此类信息,

    2024年02月16日
    浏览(8)
  • Linux中error while loading shared libraries错误解决办法

    默认情况下,编译器只会使用 /lib 和 /usr/lib 这两个目录下的库文件,通常通过源码包进行安装时,如果不指定–prefix,会将库安装在 /usr/local/lib 目录下 当运行程序需要链接动态库时,提示找不到相关的.so库,会报错。也就是说, /usr/local/lib 目录不在系统默认的库搜索目录中

    2024年01月17日
    浏览(9)
  • 执行可执行程序时遇到error while loading shared libraries错误解决

    执行 ./provider -i test.conf 编译引用了第三方库zookeeper_mt.so的代码后,执行出现了以下错误 这就是 依赖的动态库找不到路径 导致的。 示例是我处理的过程如下,最后成功执行: 解决方法有3种: 如果 共享库文件安装到了/lib或/usr/lib目录 下, 执行一下 ldconfig 命令。 ldconfig命令

    2024年02月09日
    浏览(10)
  • eclipse was unable to locate its companion shared library

    eclipse was unable to locate its companion shared library

    当转移或者Copy工程时, eclipse was unable to locate its companion shared library eclipse.ini 里面的路径配置错误导致  

    2024年02月14日
    浏览(10)
  • mysql启动时报错:error while loading shared libraries: libncurses.so.5: cannot open shared object file

    今天由于项目的需要,特地在redhat9中安装了一套mysql5.7的数据库。前期在安装和配置的过程中没有什么问题,但是在启动mysql的时候报了一个错,报错内容为: 根据报错内容可以看出,是因为在启动mysql的时候加载了libtinfo.so.5库文件。此时我们可以查看redhat9系统中是否存在改

    2024年02月12日
    浏览(9)
  • 《MySQL系列-部署维护》MySQL启动异常:error while loading shared libraries: libncurses.so.5: cannot open shared...

    《MySQL系列-部署维护》MySQL启动异常:error while loading shared libraries: libncurses.so.5: cannot open shared...

    MySQL启动时出现如下日常: 提示加载不到 libncurses.so.5 方法一:yum安装libncurses.so.5(失败) 但是使用yum安装后,下载的libncurses.so.5在 /usr/lib 目录下,再次启动MySQL的时候还是会提示加载不到 方法二:将/usr/lib64目录下的libncurses.so.6改为libncurses.so.5(成功) 拓展:如果遇到如下的报错

    2024年02月16日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包