c++11對應googletest/gtest
經過測試,c++11對應版本是googletest v1.10.x
編譯安裝
編譯環境
sudo apt-get update
sudo apt-get install -y build-essential cmake
下載或git clone代碼
git clone https://github.com/google/googletest.git
cd googletest
git checkout tags/v1.10.x # 切換版本,我本地是在頁面下載
編譯安裝googletest
cd googletest
mkdir build && cd build
cmake .. //默認release版本
cmake -DCMAKE_BUILD_TYPE=Debug .. //(可選)debug版本可以與release版本共存
cmake -DCMAKE_INSTALL_PREFIX=../gtest .. //(可選)指定安裝目錄
make
sudo make install
sudo make install DESTDIR=../gtest //(可選)指定安裝目錄
使用googletest
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(MyTest)# 設置 C++ 標準
set(CMAKE_CXX_STANDARD 11)# 手動指定 Google Test 的頭文件和庫路徑
include_directories(./gtest/include) # 頭文件路徑
link_directories(./gtest/lib) # 庫文件路徑# 添加可執行文件
add_executable(my_test main.cpp)# 鏈接 Google Test 庫和 pthread(因為 GTest 依賴 pthread)
target_link_libraries(my_test gtest.a gtest_main.a pthread)# 如果需要動態庫(.so),取消注釋以下行:
# target_link_libraries(my_test gtest.so gtest_main.so pthread)# 強制指定運行時庫路徑(動態庫需要此配置)
# target_link_options(my_test PRIVATE "-Wl,-rpath,./gtest/lib")
main.cpp
#include <gtest/gtest.h>// 要測試的函數(示例)
int add(int a, int b) {return a + b;
}// 測試用例
TEST(AddTest, PositiveNumbers) {EXPECT_EQ(add(2, 3), 5);EXPECT_GT(add(3, 2), 4);
}// 主函數(Google Test 需要此入口)
int main(int argc, char ?**argv) {::testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();
}
編譯運行my_test
mkdir build && cd build
cmake ..
make
./my_test