您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > cppUnit
軟件測(cè)試實(shí)驗(yàn)學(xué)習(xí)筆記--CppUnit
作者: 發(fā)布時(shí)間:[ 2013/12/17 9:32:47 ] 推薦標(biāo)簽:

編譯命令: gcc -o  testcppunit testcppunit.cpp -lcppunit (如果是VC/windows的話,使用cl 代替gcc--注意要配置cl的環(huán)境變量才可以在cmd命令行下使用)

在shell輸入./testcppunit ,執(zhí)行結(jié)果:

Test::testHelloWorldHello,world!

:OK

3 一些CppUnit的理論


1)CppUnit核心部分(core)

基本測(cè)試類:Test,TestFixture,TestCase,TestSuite

測(cè)試結(jié)果記錄:SychronizedObject,TestListener,TestResult

錯(cuò)誤處理:TestFailure,SourceLine,Execption,NotEqualException

斷言:Asserter,TestAssert

2)輸出部分(Ouput)

基本部件:Outputter,TestResultCollector

衍生類:TestOutputter,CompilerOutputer,XmlOutputer

3)輔助部分(Helper)

TypeInfoHelper,TestFactory,TestFactoryRegistry,NamedRegisters,TestSuiteFactory,

TesSuiteBuilder,TestCaller,AutoRegisterSuite,HelperMacros.

4)擴(kuò)展部分(Extension)

TestDecorator,RepeatedTest,Orthodox,TestSetUp

5)監(jiān)聽者部分(Listener)

TestSucessListener,TextTestProgressListener,TextTestResult

6)界面部分(UI)

TestRunner(TextUI,MfcUI,QtUI)

7)移植(Portabilty):OStringStream

4 網(wǎng)上的關(guān)于CppUnit的一些資料的匯總
 a)CppUnit 快速使用指南:https://www.ibm.com/developerworks/cn/linux/l-cppunit/

 b)CppUnit源代碼解讀:http://morningspace.51.net/resource/cppunit/cppunit_anno.html

    其中百度文庫(kù)上有一個(gè)關(guān)于這個(gè)源碼解讀的doc格式的資料:http://wenku.baidu.com/view/b7fcad4bcf84b9d528ea7ae1.html

 c)百度文庫(kù)中還有其他類似的CppUnit的資料,但是不如上面的這兩個(gè)質(zhì)量高.

 d)還有一個(gè)資料是CppUnit源碼包中example以及相應(yīng)的文檔

  5. 后記--關(guān)于CppUnit 1.21.1源碼安裝的問題的探索

  源碼安裝時(shí)遇到問題首先是要看readme中沒有沒有介紹,然后看看INSTALL,F(xiàn)AQ,TODO中有沒有解決方法,然后才到網(wǎng)上搜結(jié)果。

  首先找到參考[3] 其中介紹了一個(gè)ldconfig命令---一個(gè)修改了/etc/ld.so.confl文件的后重來(lái)動(dòng)態(tài)加載的相應(yīng)動(dòng)態(tài)鏈接庫(kù)程序的路徑的程序。參考[3]中描述的不適和我的機(jī)器,”修改/etc/ld.so.conf文件(動(dòng)態(tài)鏈接庫(kù)路徑)并添加/usr/local/lib來(lái)增加動(dòng)態(tài)加載的庫(kù)的路徑“,我的系統(tǒng)中/etc/ld.so.conf.d/*.conf中已經(jīng)包含了/usr/local/lib路徑。

  此外,還實(shí)踐了這一句:”make install沒有把頭文件安裝到/usr/include中去,此時(shí)還需要手工去復(fù)制,只要把include下面的cppunit目錄復(fù)制到/usr/include下面可以了,命令很簡(jiǎn)單,不寫了。”實(shí)踐命令是:

  sudo cp -r cppunit /usr/include --- 這個(gè)其實(shí)也是有問題的,我后來(lái)使用locate命令在 /usr/local/iinclude中發(fā)現(xiàn)了cppunit目錄。

  其次是參考[4],我驚人的發(fā)現(xiàn)那個(gè)外國(guó)哥們遇到的問題和我一樣,看了下面的回復(fù)后,我以為是因?yàn)闆]有安裝libdl.so的問題,嘗試安裝libc6和libc6-dev(使用sudo apt-get install xxx),實(shí)際系統(tǒng)已經(jīng)安裝好了這兩個(gè)庫(kù)(基本構(gòu)建庫(kù)),看了各種奇怪的Linux發(fā)行版的路徑,終于在/lib/i386-linux-gun/下發(fā)現(xiàn)了libdl.so.2庫(kù)是存在的,為什么會(huì)編譯錯(cuò)誤,是路徑的問題嗎??找了一個(gè)程序?qū)嵗褂靡幌耹ibdl庫(kù)。

/*Program:testlibdl.c -- this example test weather the libdl.so.2 is work or not*/
#include <stdlib.h>
#include <stdio.h>
#include <dlfcn.h>
int main(int argc, char **argv) {
    void *handle;
    double (*desk)(char*);
    char *error;
    handle = dlopen ("/lib/libc.so.6", RTLD_LAZY);
    if (!handle) {
        fputs (dlerror(), stderr);
        exit(1);
    }
    desk= dlsym(handle, "Apply");
    if ((error = dlerror()) != NULL)  {
        fputs(error, stderr);
        exit(1);
    }
    dlclose(handle);
}

上一頁(yè)1234下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd