


Linux下CppUnit的安裝與使用
添加時(shí)間:2011-5-22
添加:
admin
一、系統(tǒng)環(huán)境: 二、Red Hat Enterprise Linux4.0下CppUnit1.12.0的安裝 三、實(shí)例
一、系統(tǒng)環(huán)境:
Red Hat Enterprise Linux4.0
Kernel:2.6.9-5 EL
二、Red Hat Enterprise Linux4.0下CppUnit1.12.0的安裝
取得:
http://sourceforge.net/projects/cppunit/ 最新的穩(wěn)定版本為1.12.0。下載:cppunit-1.12.0.tar.gz。
解壓縮:tar -xzf cppunit-1.12.0.tar.gz
生成make file:
./configure
安裝:
make
make install
make install
配置共享庫:
vi ld.so.conf
添加:/usr/local/lib
保存
可以使用添加:/usr/local/lib
保存
ldconfig -v | grep cppunit
命令查看是否配置成功。
命令查看是否配置成功。
三、實(shí)例
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
#include "ldap_util.h"
#include "sequence_operator.h"
//test COther_Operator
class COther_TestCase : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( COther_TestCase );
CPPUNIT_TEST( CSequence_Operator_testGetNextSeq );
CPPUNIT_TEST( testBackupRestore );
CPPUNIT_TEST_SUITE_END();
protected:
LDAP *ld;
CSequence_Operator *base;
public:
void setUp()
{
CLDAP_Util::GetConnection(&ld);
base = new CSequence_Operator();
}
void tearDown()
{
CLDAP_Util::CloseConnection(&ld);
delete base;
}
protected:
void CSequence_Operator_testGetNextSeq()
{
int seq,nextseq;
CPPUNIT_ASSERT_NO_THROW(seq = base->GetNextSeq(ld,1));
CPPUNIT_ASSERT_NO_THROW(nextseq = base->GetNextSeq(ld,1));
CPPUNIT_ASSERT_EQUAL(seq+1,nextseq);
}
void testBackupRestore()
{
CDiscoveryDomain_Operator dd_operator;
CDiscoveryDomainSet_Operator dds_operator;
vector<ISNS_ATTR> keyAttr_dd;
vector<ISNS_ATTR> addAttr_dd;
vector<ISNS_ATTR> keyAttr_dds;
vector<ISNS_ATTR> addAttr_dds;
ISNS_ATTR temp;
temp.tag = 2065;
temp.len = 1;
temp.val.dd_id = 0;
keyAttr_dd.push_back(temp);
addAttr_dd.push_back(temp);
temp.tag = 2066;
temp.len = 16;
strcpy(temp.val.dd_sym_name,"DD Symbolic Name");
addAttr_dd.push_back(temp);
temp.tag = 2049;
temp.len = 1;
temp.val.dd_id = 0;
keyAttr_dds.push_back(temp);
addAttr_dds.push_back(temp);
temp.tag = 2050;
temp.len = 1;
strcpy(temp.val.dds_sym_name,"DDS Name");
addAttr_dds.push_back(temp);
//insert dd
CPPUNIT_ASSERT_NO_THROW(dd_operator.Insert(ld,keyAttr_dd,addAttr_dd));
//backup db
CPPUNIT_ASSERT_EQUAL(CLDAP_Util::Backup(),LDAP_SUCCESS);
//remove dd
CPPUNIT_ASSERT_NO_THROW(dd_operator.Remove(ld,keyAttr_dd));
//insert dds
CPPUNIT_ASSERT_NO_THROW(dds_operator.Insert(ld,keyAttr_dds,addAttr_dds));
//restore db
CPPUNIT_ASSERT_EQUAL(CLDAP_Util::Restore(),LDAP_SUCCESS);
//check dd exist
vector<ISNS_ATTR> rstAttr;
CPPUNIT_ASSERT_NO_THROW(rstAttr = dd_operator.Search(ld,keyAttr_dd,keyAttr_dd));
int size = rstAttr.size();
CPPUNIT_ASSERT_EQUAL(size,1);
//remove dd
CPPUNIT_ASSERT_NO_THROW(dd_operator.Remove(ld,keyAttr_dd));
//check dds exist
CPPUNIT_ASSERT_NO_THROW(rstAttr = dds_operator.Search(ld,keyAttr_dds,addAttr_dds));
size = rstAttr.size();
CPPUNIT_ASSERT_EQUAL(size,0);
}
};
//注冊(cè)測(cè)試用例,很重要,只有在這里注冊(cè)了才會(huì)運(yùn)行測(cè)試方法
CPPUNIT_TEST_SUITE_REGISTRATION( COther_TestCase );
//main方法中的東西都不需要改動(dòng),直接copy就可以了。
int main( int argc, char* argv[] )
{
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
// Add a listener that colllects test result
CPPUNIT_NS::TestResultCollector result;
controller.addListener( &result );
// Add a listener that print dots as test run.
CPPUNIT_NS::BriefTestProgressListener progress;
controller.addListener( &progress );
// Add the top suite to the test runner
CPPUNIT_NS::TestRunner runner;
runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
runner.run( controller );
// Print test in a compiler compatible format.
CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() );
outputter.write();
return result.wasSuccessful() ? 0 : 1;
}
四、編譯
g++ -ggdb testcase.cpp -o testcase.o
g++ -lstdc++ -lcppunit -f -0 testcase.o ....
g++ -lstdc++ -lcppunit -f -0 testcase.o ....
關(guān)鍵字:編制譯、安裝、系統(tǒng)環(huán)境
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解