GoogleTest 現在遵循 Abseil Live at Head 理念。我們建議盡可能頻繁地更新到main
分支中的最新提交。我們偶爾會發布語意版本,標記為v${major}.${minor}.${patch}
(例如v1.15.2
)。
我們的文件現已發佈在 GitHub Pages 上:https://google.github.io/googletest/。我們建議瀏覽 GitHub Pages 上的文檔,而不是直接在儲存庫中瀏覽。
版本 1.15.2 現已推出。
1.15.x 分支至少需要 C++14。
我們使用 Google 的內部系統進行持續整合。
我們計劃依賴繩索下降。
該存儲庫是以前獨立的 GoogleTest 和 GoogleMock 專案的合併。它們之間的關係非常密切,因此將它們一起維護和發布是有意義的。
請參閱 GoogleTest 使用者指南以取得文件。我們建議從 GoogleTest Primer 開始。
有關建立 GoogleTest 的更多資訊可以在 googletest/README.md 中找到。
xUnit測試框架:
Googletest 是基於 xUnit 測試框架,這是一個流行的單元測試架構
測試發現:
Googletest 會自動發現並執行您的測試,無需手動註冊您的測試
豐富的斷言集:
Googletest提供了多種斷言,例如相等、不等、異常等,使您可以輕鬆測試程式碼
使用者定義的斷言:
您可以使用 Googletest 定義自己的斷言,從而可以輕鬆編寫特定於您的程式碼的測試
死亡測試:
Googletest 支援死亡測試,它驗證您的程式碼是否以某種方式退出,這對於測試錯誤處理程式碼非常有用
致命和非致命故障:
您可以使用 Googletest 指定是否應將測試失敗視為致命或非致命,讓測試在發生失敗時繼續執行
值參數化測試:
Googletest 支援值參數化測試,可以使用不同的輸入值運行多次,這對於測試採用不同輸入的函數非常有用
類型參數化測試:
Googletest 還支援類型參數化測試,它可以使用不同的資料類型運行,這使得它對測試使用不同資料類型的函數非常有用
運行測試的各種選項:
Googletest 提供了許多執行測試的選項,包括執行單獨的測試、按特定順序執行測試以及並行執行測試
GoogleTest 遵循 Google 的基礎 C++ 支援政策。請參閱此表以取得目前支援的編譯器、平台和建置工具版本的清單。
除了 Google 的許多內部專案之外,GoogleTest 也被以下著名專案使用:
Chromium 專案(Chrome 瀏覽器和 Chrome 作業系統背後)。
LLVM 編譯器。
Protocol Buffers,Google 的資料交換格式。
OpenCV 計算機視覺庫。
GTest Runner 是一個基於 Qt5 的自動化測試運行器和圖形使用者介面,具有適用於 Windows 和 Linux 平台的強大功能。
GoogleTest UI 是一個測試運行程序,它運行測試二進位文件,允許您透過進度欄追蹤其進度,並顯示測試失敗列表。單擊其中一個會顯示失敗文字。 GoogleTest UI 是用 C# 寫的。
GTest TAP Listener是GoogleTest的事件監聽器,它實作了測試結果輸出的TAP協定。如果您的測試運行者了解 TAP,您可能會發現它很有用。
gtest-parallel 是一個測試運行程序,可以並行運行二進位檔案中的測試,以顯著提高速度。
GoogleTest 適配器是一個 VS Code 擴展,允許在樹狀視圖中查看 GoogleTest 並執行/偵錯您的測試。
C++ TestMate 是一個 VS Code 擴展,允許在樹狀視圖中查看 GoogleTest 並執行/偵錯您的測試。
Cornichon 是一個小型 Gherkin DSL 解析器,可為 GoogleTest 產生存根程式碼。
請閱讀CONTRIBUTING.md
以了解如何為該專案做出貢獻的詳細資訊。
測試愉快!