編譯命令: 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);
}