之前的文章,介紹了如何在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
下新建兩個目錄include
和lib
。然後複製$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...