如何创建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

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

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

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

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

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

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

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

    2024年02月19日
    浏览(28)
  • 如何解决“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日
    浏览(40)
  • Linux中error while loading shared libraries错误解决办法

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

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

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

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

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

    2024年02月14日
    浏览(33)
  • 《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日
    浏览(92)
  • 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日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包