• <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>

            不倦的候鳥成長日記

            ——候鳥,候補(bǔ)的菜鳥也
            隨筆 - 6, 文章 - 0, 評(píng)論 - 5, 引用 - 0
            數(shù)據(jù)加載中……

            C++測試框架的選擇[轉(zhuǎn)]

            http://www.gamesfromwithin.com/articles/0412/000061.html,在這篇文章中,Noel Llopis提出了一個(gè)對(duì)C++ test framework評(píng)判的一些依據(jù),按照Noel Llopis給出的重要性,我節(jié)略在這里。

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

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

            3.便于裝配/拆卸測試環(huán)境

            4.對(duì)異常以及崩潰很好的控制

            5.好的斷言功能

            6.支持不同的輸出方式

            7.支持測試套件(suites)

             

            按照這個(gè)標(biāo)準(zhǔn),Noel Llopis對(duì)下面的test framework進(jìn)行了評(píng)價(jià)

            CPPUnit

            1.工作量多

            2.CPPUnit能在Windows , Linux上面運(yùn)行,功能進(jìn)行了很好的模塊化,但是另一方面,CPPUnit需要RTTI,STL,或者異常(作者不是很肯定)

            3.

            4.CPPUnit使用protectors包裝測試,并且捕捉所有的異常(嘗試識(shí)別某些異常),Linux下面不會(huì)捕捉系統(tǒng)異常,但是要增加自定義的包裝是很容易的。

            5.很好,支持一個(gè)最小集合的斷言語句,包括比較浮點(diǎn)數(shù)。

            6.支持

            7.支持

            總體評(píng)價(jià):Overall, CppUnit is frustrating because it's almost exactly what I want, except for my most wanted feature. (CPPUnit夠悶的,不過我覺得改進(jìn)易用性應(yīng)該可以期待)

             

            Boost.Test(我嘗試使用,在VC.Net 2003下面遇到鏈接問題,還沒有解決)

            1.基本滿足

            2.和CPPUnit類似,但強(qiáng)調(diào)的是改代碼的難度以及依賴Boost本身

            3.避開了常規(guī)的setup/teardown結(jié)構(gòu),可以不需要?jiǎng)討B(tài)生成fixture 對(duì)象,可以將fixture對(duì)象放到stack里面。

            4.Boost.Test在這方面超過了所有的其他競爭對(duì)手

            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(由于作者比較了一個(gè)被他改動(dòng)的版本,我不再關(guān)注)

             

            NanoCppUnit(這個(gè)庫甚至需要你去從web pages上面copy代碼,然后自己搞一個(gè)工程,我覺得我不太喜歡這種方式的package發(fā)布,畢竟,我希望少操心,所以我也不關(guān)注)

             

            Unit++

            首先指出一個(gè)獨(dú)特的特性:More C++ Like,作者的意思是它沒有使用宏,的確,前面幾種framework開始一個(gè)測試的時(shí)候都使用了宏,這在許多C++ Library中是慣例,用來簡化一些代碼。我們通過從基類繼承從而創(chuàng)建測試包,當(dāng)然在其他framework里面本質(zhì)也是這樣,但是都放在幕后進(jìn)行,宏掩蓋了具體情況。

            1.不好

            2.一般般

            3.不支持

            4.表現(xiàn)平均

            5.文檔沒說如何支持不同的輸出

            6.不支持浮點(diǎn)數(shù)

            7.支持

             

            CxxTest

            首先作者認(rèn)為文檔最好(很重要?)另外作者指出,CxxTest的作者Erez Volk意識(shí)到我們是在寫工具幫助測試C++程序,所以不必受限于C++的特征。

            1.非常好

            2.很好

            3.支持

            4.很好

            5.yes

            6.yes

            7.yes

             

             

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

            (完)

             

            轉(zhuǎn)自:http://hi.baidu.com/fangfang%5Fi/blog/item/32876bfb5d140a64024f56e6.html

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

            評(píng)論

            # re: C++測試框架的選擇[轉(zhuǎn)]  回復(fù)  更多評(píng)論   

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

            # re: C++測試框架的選擇[轉(zhuǎn)]  回復(fù)  更多評(píng)論   

            @eXile
            Python我倒是沒有用過,現(xiàn)在用的是Perl。
            我也是剛剛開始學(xué)習(xí)單元測試,估計(jì)還沒有這個(gè)水平可以提供一個(gè)可執(zhí)行文件。
            CxxTest雖然需要預(yù)處理,但這之后的工作就簡單了。
            尤其它的編譯即執(zhí)行測試的方式很誘人,并且可以雙擊結(jié)果行立即定位到相應(yīng)的源代碼。好像其它的C++單元測試框架都沒有這個(gè)功能……
            2007-08-27 09:04 | 吳晶晶
            精品国产乱码久久久久久郑州公司| 亚洲国产精品热久久| 一本色道久久综合狠狠躁| 亚洲国产精品无码久久久蜜芽 | 久久99亚洲综合精品首页| 久久艹国产| 久久精品中文闷骚内射| 93精91精品国产综合久久香蕉| 性高湖久久久久久久久AAAAA| 久久99精品久久久久久hb无码| 国产精品熟女福利久久AV| 亚洲综合伊人久久综合| 丰满少妇人妻久久久久久4| 无码专区久久综合久中文字幕| 亚洲嫩草影院久久精品| 人妻丰满AV无码久久不卡| 久久精品成人| 国产午夜福利精品久久| 久久久久人妻一区精品性色av| 久久久久久极精品久久久| 青草影院天堂男人久久| 少妇内射兰兰久久| 国产成人综合久久精品红| 久久久久无码中| 草草久久久无码国产专区| 国产成年无码久久久久毛片| 伊人久久大香线蕉成人| 国内精品伊人久久久久网站| 精品久久一区二区三区| 777午夜精品久久av蜜臀 | 成人久久精品一区二区三区| 久久综合亚洲鲁鲁五月天| 久久无码AV中文出轨人妻| 91精品免费久久久久久久久| 久久精品国产精品青草app| 国产美女久久精品香蕉69| 精品久久久久久综合日本| 久久午夜电影网| 久久综合日本熟妇| 亚洲国产综合久久天堂 | 一级做a爰片久久毛片免费陪|