在Code Blocks上使用gtest
目錄
Step 0. 事前準備
下載Google Test : gtest-1.7.0
下載CMake : cmake-3.2.0-rc2
Step.1 用CMake編譯Google Test
- 將CMake安裝或解壓縮至適當路徑
- 執行\bin下的cmake-gui.exe
- 在”Where is the source code:”中填入gtest-1.7.0的路徑
- 在”Where to build the binaries:”中填入欲放置bulid完成的資料, 這邊我在gtest-1.7.0路徑下建立了一個build-codeblocks-mingw資料夾
- 按下Configure
- 選擇CodeBlocks-MinGW MakeFiles的generator
- 按下Finish並等待建置完成
- 按下Generate (有部份參考網站寫道必需勾選gtest_disable_pthreads核取方塊, 但沒有勾選也好像沒有影響, 可能是gtest版本的差異?)
- 開啟..\gtest-1.7.0\build-codeblocks-mingw\中由CMake產生的gest project file(.cbp檔)
- 按下Build即可完成編譯
Step 2. 在Code Blocks上設定gtest
- 首先建立一個專案
- 在Project選單中, 點選Build Options
- 點選Linker Settings頁籤, 並在Other linker options下填入-lgtest
- 換到Search directories頁籤, 在Compiler子頁籤中點選Add, 並填入..\gtest-1.7.0\include的完整路徑
- 同樣在Linker子頁籤中點選Add, 加入..\gtest-1.7.0\build-codeblocks-mingw的完整路徑
- 按下OK即可完成設定
Step 3. 用簡單範例測試是否完成
在專案中簡單輸入下面的程式碼:
#include <cstdlib>
#include <gtest/gtest.h>
int mul(int a, int b)
{
return a * b;
}
TEST(multest, HandleNoneZeroInput)
{
EXPECT_EQ(21, mul(3, 7));
EXPECT_EQ(-24 ,mul(-6, 4));
}
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}經過編譯並執行, 可以得到unit test的結果
參考資料來源: JustDoIT博客