在設定我們未來幾年的C++單元測試框架的過程中,我們入圍了GoogleTest和CppUnit。我對這兩方面都有一些經驗,而我的重點是GoogleTest。無論如何說服我的老闆,我需要一些事實所以我做了一些在互聯網上閱讀,包括手冊,維基頁面和一些來源。我想出了一份GoogleTest優勢清單和一個CppUnit優勢(圖形測試選手)。在這裏,他們被有序感知有用:GoogleTest vs CppUnit:事實
- INSTANTIATE_TEST_CASE_P來實例化一個測試用例任意一組你想要的參數,包括笛卡爾乘積
- FRIEND_TEST測試私有類成員(所有的遺留代碼)
- 轉折斷言到斷點
- 非致命斷言
- 「開箱即用」 googlemock整合
- 自動售貨機IC測試檢測,沒必要一一列舉
- 測試可以被禁用和啓用
- 測試,以可使用名模式
- 值/類型參數化測試
- 用戶定義謂詞來選擇運行斷言
- 死亡測試
- 更豐富的斷言
- 類型斷言
- 聲稱對子程序
- 附加調試信息可以被添加到斷言使用< <
- RecordProperty發射到XML輸出的特性最後一個值
- SCOPED_TRACE有助於理解斷言失敗從內部發出的背景下,子程序或循環。
- 的xUnit XML輸出,可以通過詹金斯被立即顯示未經XSLT轉換在
- 之間支持自定義類型的打印機
- 通過測試指示(我懷疑這也是可能的CppUnit的但還沒了它消耗時間還)
- 測試事件監聽器API(用戶定義的插件)
- 測試洗牌
- 沒有例外和RTTI
甲我正確地認爲以上所有都不被CppUnit支持?有沒有一個有用的GoogleTest功能不可用在CppUnit我很想念?
最後但並非最不重要:有沒有任何不錯的CppUnit功能,GoogleTest 缺少?
謝謝!
[比較C++單元測試框架]的一些答案(http://stackoverflow.com/questions/242926/comparison-of-c-unit-test-frameworks)專門解決GoogleTest功能。 –
幾年前,我正在做一個類似的調查,GoogleTest不在那時。我決定使用CXXTest,它有一個機制,可以通過Perl的預分析步驟來枚舉測試用例。這遠遠優於CppTest。這就是說,我對GoogleTest一無所知。 –
圖形測試運行器是一個優勢?通常你想要一些可以輕鬆自動化的東西,因爲自動化意味着你可以更容易和更頻繁地獲得測試反饋。 –