• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            不倦的候鳥成長日記

            ——候鳥,候補的菜鳥也
            隨筆 - 6, 文章 - 0, 評論 - 5, 引用 - 0
            數據加載中……

            C++測試框架的選擇[轉]

            http://www.gamesfromwithin.com/articles/0412/000061.html,在這篇文章中,Noel Llopis提出了一個對C++ test framework評判的一些依據,按照Noel Llopis給出的重要性,我節略在這里。

            1.加入新測試最小化工作量

            2.便于修改和移植(作者的意思是說比如RTTI,STL,Exception這些高級特性可能妨礙在不同的平臺,不同版本編譯器下面的可移植性)

            3.便于裝配/拆卸測試環境

            4.對異常以及崩潰很好的控制

            5.好的斷言功能

            6.支持不同的輸出方式

            7.支持測試套件(suites)

             

            按照這個標準,Noel Llopis對下面的test framework進行了評價

            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)

            Overall,Boost.Test is a library with a huge amount of potential. It has great support for exception handling and advanced assert statements. It also has other fairly unique functionality such as support for checking for infinite loops, and different levels of logging. On the other hand, it's very verbose to add new tests that are part of a suite, and it might be a bit heavy weight for game console environments.

             

            CppUnitLite(由于作者比較了一個被他改動的版本,我不再關注)

             

            NanoCppUnit(這個庫甚至需要你去從web pages上面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

             

             

            文章最后給出一個綜述:是個表現好的,CPPUnit, CppUnitLite, Boost.Test, CxxTest,作者本人喜歡CxxTest.

            (完)

             

            轉自:http://hi.baidu.com/fangfang%5Fi/blog/item/32876bfb5d140a64024f56e6.html

            posted on 2007-08-26 14:34 不倦 閱讀(2838) 評論(2)  編輯 收藏 引用 所屬分類: C++單元測試框架

            評論

            # re: C++測試框架的選擇[轉]  回復  更多評論   

            CxxTest需要預處理, windows上還得安裝Python, 作者要是直接提供一個可執行文件就好了
            2007-08-26 21:12 | eXile

            # re: C++測試框架的選擇[轉]  回復  更多評論   

            @eXile
            Python我倒是沒有用過,現在用的是Perl。
            我也是剛剛開始學習單元測試,估計還沒有這個水平可以提供一個可執行文件。
            CxxTest雖然需要預處理,但這之后的工作就簡單了。
            尤其它的編譯即執行測試的方式很誘人,并且可以雙擊結果行立即定位到相應的源代碼。好像其它的C++單元測試框架都沒有這個功能……
            2007-08-27 09:04 | 吳晶晶
            性做久久久久久久久浪潮| 久久精品这里热有精品| 色欲久久久天天天综合网精品| 久久久久久久精品妇女99| 国产精品久久毛片完整版| 国产精品久久久天天影视香蕉| 亚洲精品成人网久久久久久| 国产精品一区二区久久不卡| 伊人久久大香线蕉无码麻豆| 伊人久久大香线焦AV综合影院| 久久国产综合精品五月天| 日日躁夜夜躁狠狠久久AV| 亚洲精品无码专区久久同性男| 亚洲va中文字幕无码久久| 久久久久亚洲精品无码网址| 中文字幕久久欲求不满| 亚洲国产精品久久久久网站| 日本WV一本一道久久香蕉| 日韩美女18网站久久精品| 国产福利电影一区二区三区久久久久成人精品综合 | 久久久噜噜噜久久中文字幕色伊伊| 久久精品国产亚洲AV无码娇色| 久久无码AV中文出轨人妻| 99久久精品免费看国产免费| 久久精品亚洲日本波多野结衣| 色播久久人人爽人人爽人人片aV| 色综合久久综合网观看| 精品午夜久久福利大片| 青青草原1769久久免费播放| 久久夜色精品国产噜噜麻豆 | 久久99精品九九九久久婷婷| 99久久精品费精品国产| 久久青青草原国产精品免费| 久久久久亚洲AV无码麻豆| 亚洲国产美女精品久久久久∴| 精品无码久久久久国产动漫3d| 精品综合久久久久久97| 亚洲日本va中文字幕久久| 久久精品亚洲中文字幕无码麻豆| 久久精品国产99国产精品亚洲 | 国产精品美女久久久m|