衡量指標:
1.加入新測試最小化工作量
2.便於修改和移植(作者的意思是說比如rtti,stl,exception這些高階特性可能妨礙在不同的平台,不同版本編譯器下面的可移植性)
3.便於裝配/拆卸測試環境
4.對異常以及崩潰很好的控制
5.好的斷言功能
6.支援不同的輸出方式
7.支援測試套件(suites)
按照這個標準,對下面的testframework進行了評價:
cppunit
1.工作量多
2.cppunit能在windows,linux上面執行,功能進行了很好的模組化,但是另一方面,cppunit需要rtti,stl,或者異常(作者不是很肯定)
3.4.cppunit使用protectors包裝測試,並且捕捉所有的異常(嘗試識別某些異常),linux下面不會捕捉系統異常,但是要增加自定義的包裝是很容易的。
5.很好,支援乙個最小集合的斷言語句,包括比較浮點數。
6.支援
7.支援
總體評價:overall, cppunit is frustrating because it's almost exactly what i want, except for my most wanted feature. (cppunit夠悶的,不過我覺得改進易用性應該可以期待)
boost.test(我嘗試使用,在vc.net 2003下面遇到鏈結問題,還沒有解決)
1.基本滿足
2.和cppunit類似,但強調的是改**的難度以及依賴boost本身
3.避開了常規的setup/teardown結構,可以不需要動態生成fixture 物件,可以將fixture物件放到stack裡面。
4.boost.test在這方面超過了所有的其他競爭對手
5.yes
6.大概能支援,但改變輸出這件事情並不是很容易
7.支援,...(這句如何理解?yes, but with a big catch)
cppunitlite(由於作者比較了乙個被他改動的版本,我不再關注)
nanocppunit(這個庫甚至需要你去從webpages上面copy**,然後自己搞乙個工程,我覺得我不太喜歡這種方式的package發布,畢竟,我希望少操心,所以我也不關注)
unit++
首先指出乙個獨特的特性:more c++ like,作者的意思是它沒有使用巨集,的確,前面幾種framework開始乙個測試的時候都使用了巨集,這在許多c++ library中是慣例,用來簡化一些**。我們通過從基類繼承從而建立測試包,當然在其他framework裡面本質也是這樣,但是都放在幕後進行,巨集掩蓋了具體情況。
1.不好
2.一般般
3.不支援
4.表現平均
5.文件沒說如何支援不同的輸出
6.不支援浮點數
7.支援
cxxtest
首先作者認為文件最好(很重要?)另外作者指出,cxxtest的作者erez volk意識到我們是在寫工具幫助測試c++程式,所以不必受限於c++的特徵。
1.非常好
2.很好
3.支援
4.很好
5.yes
6.yes
7.yes
C 測試框架的選擇
c 測試框架的選擇 金慶的專欄 本文以 形式總結了 exploring the c unit testing framework jungle http gamesfromwithin.com exploring the c unit testing framework jungle 一文對各種單元...
C 測試框架的選擇
c 測試框架的選擇 金慶的專欄 本文以 形式總結了 exploring the c unit testing framework jungle 一文對各種單元測試框架的比較,並新增了原文所還沒有加入的google test.並新增了另一項特性比較,即對mock物件的支援。各比較項為 1.加入新測試最...
SoarUI 架構改進的選擇
這是一張大致的訊息流程圖 1.為了以後跨平台,訊息系統模仿ms 2.sheet和layer是乙個虛擬的邏輯類 模仿cocos的scene和layer 這裡我sheet具有z屬性,直接控制了 soarwnd視窗的層次,同一層次的全部放在乙個layer中 事件處理的話,依照z的順序依次判定即可。3.有了...