在mingw專案中引入googletest

2021-07-10 09:00:46 字數 2317 閱讀 9295

之前的文章,介紹了如何在windows下使用 mingw 和 eclipse 來搭建 c++ 的開發環境。這篇文章在此基礎上,介紹如何在專案中引入著名的單元測試框架 googletest。

有關於單元測試和 googletest 的測試和可以參考這兩篇文章:單元測試, googletest

簡單的說,單元測試時用來保證程式單元的穩定性,自底而上消除程式中可能存在的隱患。而googletest是乙個方便進行 c++ 程式單元測試的框架。

googletest以開源原始碼的形式提供,需要自己在專案所在平台中進行編譯,這一小節介紹如何編譯googletest庫

googletest的原始碼在github上託管,託管的位址是

# clone source

git clone .git

# checkout newest tag

git checkout release-1.7.0

注意到,在上面的命令中 checkout 出了最新的 tag, 這是因為master分支上的**不一定能夠編譯的過

開打windows命令列工具,切換至googletest所在目錄,執行如下命令進行編譯

# 編譯c++11標準的版本

cmake -g "mingw makefiles" -dcmake_cxx_flags=-std=c++11

# 或者 編譯c++98標準的版本

cmake -g "mingw makefiles"

# 待cmake生成makefile之後,執行

mingw32-make

至此,googletest就編譯完畢了。可以在googletest對應的目錄下,發現libgtest.a靜態鏈結庫

編譯完成後,我們需要將googletest引入到專案中。這裡以eclipse為例來介紹。

首先,要將gtest庫放到乙個方面使用的位置。以vinsonlib專案為例,我將其放入到了$proroot/third-party/googletest下。

方法是,在$proroot/third-party/googletest下新建兩個目錄includelib。然後複製$gtestroot/include/gtest$proroot/third-party/googletest/include,複製$gtestroot/libgtest.a$proroot/third-party/googletest/lib

然後,對專案進行必要的配置。

至此,googletest庫就引入到專案了,下面我們來測試一下。建立乙個檔案,寫入一下內容,編譯執行

#include "gtest/gtest.h"

int foo ()

test(footest, test)

int main(int argc, char* argv)

如果一切正常,則會看到如下輸出

[**********]

running 1 test

from 1 test

case.

[----------]

global

test

environment

set-up.

[----------] 1 test

from

footest

[ run ]

footest

.test

[ ok ]

footest

.test (0 ms)

[----------] 1 test

from

footest (0 ms

total)

[----------]

global

test

environment

tear-down

[**********] 1 test

from 1 test

case

ran. (0 ms

total)

[ passed ] 1 test.

在iOS專案中引入MVVM

本文翻譯自 mvc?還有另外乙個解釋 massive view controller,翻譯過來就是一大堆的view controller的意思。有的時候真的時有這種感覺,view controller太多了。尤其在乙個人晚上加班改bug的時候,感覺更明顯。於是,你會恨不得全部推倒重來算了!從架構的角...

在Java專案中引入日誌

日誌 log 主要用來記錄系統執行中一些重要操作資訊 便於監視系統運 況,幫助使用者提前發現和避開可能出現的問題,或者出現問題後根據日誌找到原因 日誌分類 sql日誌 異常日誌 業務日誌 可以自己寫個日誌記錄的小工具 log4j是乙個非常優秀的開源日誌框架 控制日誌的輸出級別 控制日誌資訊輸送的目的...

專案中引入字型

font face html,body蘋方提供了六個字重,font family 定義如下 蘋方 簡 常規體 font family pingfangsc regular,sans serif 蘋方 簡 極細體 font family pingfangsc ultralight,sans serif...