首先取得 gtest,下載 gtest-1.7.0.zip。
解壓縮之後,在 msvc 資料夾下可以找到 gtest, gtest-md 兩個方案檔,
兩個方案差別在 gtest 編譯屬性為 MT (MTd),而 gtest-md 為 MD (MDd),
這裡要選擇跟待測專案同樣的設定,關於 MD, MT 詳細資訊請見 MSDN。
如果手邊沒有現有專案的話,先建立一個空專案在 C:\Project1,
因為 VS C++ 專案預設為 MD,所以接下來選擇 gtest-md 為範例。
直接點擊兩下gtest-md 方案,VS 會自動將 VS 2003 版本轉換為 VS2013 版本,
編譯之後,複製 msvc\gtest-md\Debug\gtestd.lib 及 C:\gtest-1.7.0\msvc\gtest-md\Release\gtest.lib
到 C:\Project1\Project1\gtest\lib
另外複製 C:\gtest-1.7.0\include 整個資料夾到 C:\Project1\Project1\gtest。
接著設定 Project1 的專案使用 googletest,分別是
其他 Include 目錄為 .\gtest\include
其他程式庫目錄為 .\gtest\lib
其他相依性為 gtest.lib
接著將 main.cpp 改為下列範例
#include "gtest/gtest.h" int main(int argc, char* argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } int add(int a, int b) { return a + b; } TEST(AddTest, Test1) { EXPECT_EQ(3, add(1, 2)); }
編譯,執行成功!
恭喜可以開始進行 Unit Test 了!
註:如果使用 Visual Studio 2012 會遇到「error C2977: 'std::tuple' : 樣板 引數太多 」錯誤,
可以參考這篇:error C2977: 'std::tuple' : too many template arguments
參考資料:
googletest - Google C++ Testing Framework
https://code.google.com/p/googletest/
Primer - Getting started with Google C++ Testing Framework
https://code.google.com/p/googletest/wiki/Primer
Samples - Google C++ Testing Framework Samples
https://code.google.com/p/googletest/wiki/Samples
沒有留言:
張貼留言