初識googletest測試框架用法

2021-10-23 13:43:46 字數 3678 閱讀 7378

其它平台編譯操作

git clone
mkdir build

cd build

cmake.exe -g "mingw makefiles" path\to\googletest

cd path\to\googletest

mingw32-make -j 8

參考

cmake指定mingw編譯器的方法

新建乙個mytest檔案目錄,將原始檔的include,以及build目錄下編譯好的lib檔案分別拷貝到新建的lib和include目錄下

mkdir mytest

cd mytest

mkdir lib

mkdir include

cp -rf path\to\googletest\googletest\include\* include

新建乙個mytest.cpp

#include

#include

using

namespace std;

intadd

(int a,

int b)

test

(testcase,test0)

intmain

(int argc,

char

**ar**)

執行mytest測試

g++ mytest.cpp -o mytest -i./include -l./lib -lgtest -std = c++11
執行mytest.exe

$ ./mytest.exe

d:/projects/buildgoogletest/mytest/mytest.exe: error while loading shared libraries: libgtest.dll: cannot open shared object file: no such file or directory

提示缺失dll等檔案,還要將path\build\bin目錄下所有dll拷貝到mytest目錄下,mytest目錄結構如下:

為什麼會提示缺失dll等檔案?c++:lib和dll的區別與使用

再次執行./mytest.exe就顯示測試用例的結果

有關更多googletest用法介紹,可參閱include標頭檔案gtest/gtest.h,深入理解gtest c/c++單元測試經驗談 參考

cmake構建時指定編譯器架構(x86 or x64)

mkdir build

cd build

cmake -g 「visual studio 16 2019」 path\to\googletest

windows vs2019 x64編譯器為例,cmake命令如下:

cmake -g "visual studio 16 2019" path\to\googletest
如果是其它編譯版本,不是visual studio 16 2019

去掉win64,就是32bit:

cmake -g "visual studio 15" path\to\googletest
另外一種等價方式,用命令列引數-a來指定架構(x64或者arm):

cmake -a x64 path\to\googletest
更多參考:

windows下如果用了cmake -g "visual studio 15"命令,則cmake會給你生成visual studio工程檔案相關的檔案,比如:project.sln,這時要編譯生成必須用msbuild命令,比如:

msbuild project.sln
完整步驟是:

cmake -g "visual studio 15 win64" path\to\googletest

msbuild project.sln

windows還提供了一種構建命令:nmake

使用命令如下:

cmake -g "nmake makefiles" path\to\googletest

nmake /f makefile.nmake

如果要為nmake指定x64/x86,還不清楚cmake有沒相關引數設定,目前我知道的方法如下,

以vs2019為例,開啟cmd,定位到microsoft visual studio 16.0\vc\目錄下,然後執行命令:

vcvars64.bat

如果要32位,就執行:vcvarsamd64_x86.bat。

執行完後再跳轉到要構建的工程目錄下,接著執行

cmake -g "nmake makefiles" path\to\googletest
以及

nmake /f makefile.nmake   或者  nmake
這樣生成出來的程式就是x86或者x64版本,但是要分別執行不同終端才可以。

cmake構建時指定編譯器架構(x86 or x64)

設定cflags(或者cxxflags)為-m32或者-m64,例如:

export cflags=-m32
32 bit

cmake -dcmake_osx_architectures=i386 path\to\googletest
64 bit

cmake -dcmake_osx_architectures=x86_64 path\to\googletest
96-bit universal

cmake "-dcmake_osx_architectures=x86_64;i386" path\to\googletest
參考:

Google Test單元測試使用

google開源了很多實用的模組,比如google gtest google gmock google glog google gflags google ctemplate google sparsehash protobuf perftools,gtest是c 的測試模組,提供豐富的測試方法 軟...

Qt使用Google Test 單元測試

場景 對qt程式測試 說明 google test環境搭建,看我部落格 google test 的使用,這裡不再重複說明。實現步驟 1 新增qt庫目錄,在qt的安裝目錄,我安裝的是在盤c下 專案屬性 c c 常規 附加包含目錄 新增路徑 c qt include c qt include qt c ...

用googletest寫單元測試

reference 對於稍微複雜些的測試用例,例如需要共享資料 class chashtabletest public testing test virtual void setup virtual void teardown chashtable ht string key1 string key...