Qt配置使用Google Test

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt配置使用Google Test相关的知识,希望对你有一定的参考价值。

        Google Test(简称gtest)是一个比较出名的单元测试工具,用来进行单元模块的测试很方便。查了一下网上的博客,发现多数讲的都是gtest在vs上的配置,并没有在Qt上的配置,本篇主要讲解如何配置Qt Creator使用的gtest环境。


一、安装下载

        这里就不多讲,Qt安装,百度一大把。这里需要从GitHub上下载gtest的源码。


二、使用Qt Creator进行编译

        把代码下载完成以后,gtest代码目录如下

技术分享图片

        这里我们只需要使用googletest文件夹下的内容,其他的暂时没有使用,后续用到时,再进行分析。


在googletest文件夹下新建一个gtest.pro文件,主要包括gtest的头文件和源文件

QT	-= gui

TARGET = gtest
TEMPLATE = lib
CONFIG = staticlib
INCLUDEPATH += ./include

#DEFINES += QT_DEPRECATED_WARNINGS

SOURCES += src/gtest.cc			src/gtest_main.cc 		src/gtest-all.cc			src/gtest-death-test.cc			src/gtest-filepath.cc	                src/gtest-port.cc			src/gtest-printers.cc			src/gtest-test-part.cc			src/gtest-typed-test.cc


        然后使用Qt Creator打开gtest.pro。然后进行编译,最后生成的gtest.lib就是我们需要的库文件



三、使用gtest

        新建一个测试工程,将gtest.lib和include文件夹拷贝到工程目录下。

    技术分享图片


gtest_test.pro

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

INCLUDEPATH += ./include

SOURCES += main.cpp

LIBS += -L$$PWD/lib/ -lgtest


main.cpp

#include <iostream>
#include "gtest/gtest.h"
using namespace std;


int Factorial(int n) {
    int result = 1;
    for (int i = 1; i <= n; i++) {
        result *= i;
    }

    return result;
}

TEST(Factorial, Empty)
{
    EXPECT_EQ(1, Factorial(1));
}

int main(int argc, char* argv[])
{
    testing::InitGoogleTest(&argc,argv);
    return RUN_ALL_TESTS();
}


运行结果如图

技术分享图片



需要注意的是,debug的话,会出现错误,release则没有问题。


运行结果如下。

技术分享图片



以上是关于Qt配置使用Google Test的主要内容,如果未能解决你的问题,请参考以下文章

windows下编译google-protocolbuf在Qt中使用

使用 Google Test 和 CMake 在子文件夹中配置测试

从片段调用 Google Play 游戏服务

26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段

如何从一个片段中删除数据,这些片段应该反映在google firebase中的其他片段中

Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解