1. 程式人生 > >Qt配置使用Google Test

Qt配置使用Google Test

Qt Google Test gtest

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