谷歌gtest環境搭建(linux and windows)

        代碼的單元測試能夠極大的提升代碼的質量,減少代碼的各類隱患和bug,谷歌推出的單元測試框架Gtest就是做單元測試的一個極好的選擇。今天的教程主要來介紹Gtest環境的搭建。

1.Gtest的獲取與編譯

 a.可以在https://github.com/google/googletest 上直接下載或者通過 git clone https://github.com/google/googletest.git 來獲取gtest的源碼

 b.我們可以看到代碼的根目錄已經存在CMakeList.txt文件爲了不污染源代碼,我們在這個目錄下創建文件夾build, cd build,執行命令cmake .. 和 make ,執行成功以後,可以看到build文件夾下的生成了lib文件夾,這個文件夾包含了4個文件

看到這4個文件,說明我們的編譯已經成功了

2.Gtest文件的拷貝

這裏需要把生成的庫和源碼的一些文件放到系統中適當的位置,之後我們就可以像調用c++自帶的庫文件一樣使用gtest了。

a.把源碼中googletest\googletest\include\裏面的gtest整個文件夾拷貝到\usr\include

   把源碼中googletest\googlemock\include\裏面的gmock整個文件夾拷貝到\usr\include

b. 把第一步1.b編譯出來的4個文件拷貝到\usr\lib 中

這就完成了所有的配置

這裏說的都是linux下的配置方法,如何在windows下配置呢?這裏有兩種變通方法.

1.直接安裝vs2019,vs2019已經可以直接創建Gtest工程了,不過該如何調用gmock庫需要自己探索一下

2.第二種辦法和linux下的環境搭建比較一致,需要先安裝cygwin,安裝之後就可以使用linux下的編譯和配置方法了

編譯方法和linux環境完全一致,拷貝文件的時候有些許的不同

a. cygwin64\usr\include 對應\usr\include

b. cygwin64\lib 對應\usr\lib

至此,linux和windows下的配置就完成了,接下來我們寫一個小的程序來檢驗環境是否成功搭建。

創建一個temp.cpp,內容如下:

#include<gtest/gtest.h>
#include<gmock/gmock.h>
int add(int a,int b){
    return a+b;
}
TEST(TestMath,TestAdd){
    EXPECT_EQ(add(2,3),5);
}
int main(int argc,char **argv){
  testing::InitGoogleTest(&argc,argv);
  return RUN_ALL_TESTS();
}

執行命令g++  temp.cpp -lgtest -lgmock -lpthread (如果不引入gmock.h,編譯選項可以省去-lgmock),會生成a.out(linux) 或者a的a.exe,運行生成的文件,可以看到

說明我們的環境搭建成功了。

接下來就是真正要面對的問題,如何用googletest去真正測試我們的代碼,如何在測試的驅動下讓我們的接口更優雅簡潔和健壯。這纔是我們真正面對的挑戰

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章