C 測試架構的選擇

2021-04-28 02:40:25 字數 1810 閱讀 3539

衡量指標:

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.有了...