cpptest的安装和测试
可以从 Sourceforge 免费下载 CppTest
(见 参考资料),采用的许可协议是 GNU Lesser General Public License (GPL)。按一般的开放源码配置-构建过程构建源代码。这会生成一个名为 libcpptest 的静态库。客户机代码必须包含下载的源代码中的头文件 cppTest.h,还要包含静态库 libcpptest.a 的链接
本次使用的版本为 :cpptest-1.1.1.tar.gz
所在的环境:Linux x86_64 x86_64 x86_64 GNU/Linux
由于是开发者, 需要管理员授权root权限才能安装。
安装好的头文件 放在 /usr/local/include, 库文件 放在/usr/local/lib/.
写个简单的测试用列: 案例学习参考 http://www.ibm.com/developerworks/cn/aix/library/au-ctools3_ccptest/
#include "cpptest.h"
#include <iostream>
using namespace std;
class myTest : public Test::Suite
{
void function1_to_test_some_code( ) {}
void function2_to_test_some_code( ) {}
public:
myTest( )
{
TEST_ADD (myTest::function1_to_test_some_code);
TEST_ADD (myTest::function2_to_test_some_code);
}
};
int main(int argc, char **argv)
{
myTest tests;
Test::TextOutput output(Test::TextOutput::Verbose);
return tests.run(output);
cout << "hello...." <<endl;
return 0;
}
[makefile: 此makefile是由其它程序稍加修改, 本人懒的很 :(]
##########
include $(ORACLE_HOME)/precomp/lib/env_precomp.mk
### -Wno-unused : 关闭unused警告
### -Werror : 将警告作为一个错误而中断编译过程
CPP=g++ -Wall -Wwrite-strings -lstdc++
I_SYM=-I
LDFLAGS=
### cpptest工具安装路径 ###
CPPTEST_INCLUDE=-I /usr/local/include/
CPPTEST_LIB=-L/usr/local/lib/ -lcpptest
### oracle lib ###
ORACLE_LIB=-L$(ORACLE_HOME)/lib -lclntsh
PRECOMPHOME=$(ORACLE_HOME)/precomp/public
PROCPPFLAGS= code=cpp
NETWORKHOME=$(ORACLE_HOME)/network/
PLSQLHOME=$(ORACLE_HOME)/plsql/
STLINCLUDE = -I $(COMPILER)/include_std
INCLUDE=$(I_SYM). $(I_SYM)$(PLSQLHOME)public $(I_SYM)$(NETWORKHOME)public $(I_SYM)$(PRECOMPHOME) /
$(I_SYM)/usr/include $(I_SYM)/usr/vacpp/include $(CPPTEST_INCLUDE)
###ORAINCLUDE=$(I_SYM). $(I_SYM)$(PLSQLHOME)public $(I_SYM)$(NETWORKHOME)public $(I_SYM)$(ORACLE_HOME)/precomp/public
CFLAGS= -c -lct -lcs -ltcl -lcomn -lintl -lm
LIBHOME=$(ORACLE_HOME)/lib/
COMMONOBJ = ../Common/CLogMng.o ../Common/CConfig.o ../Common/CInit.o ../Common/CIniFile.o ../Common/CTask.o
.SUFFIXES:
.pc .cpp .C .cc .cxx .o
.pc.cpp:
$(ORACLE_HOME)/bin/$(PROC) $(PROCPPFLAGS) cpp_suffix=cpp release_cursor=yes char_map=string /
ireclen=256 iname=$*.pc parse=none lname=err
.cc.o:
$(CPP) $(DEBUG) $(INCLUDE) $(CXXFLAGS) -c $<
.cpp.o:
$(CPP) $(DEBUG) $(CXXFLAGS) $(INCLUDE) -c $<
.c.o:
$(CPP) $(DEBUG) $(INCLUDE) $(CXXFLAGS) -c $<
PROGNAME=run
PCCSRCS= main.pc
PCCGENSRCS=${PCCSRCS:.pc=.cpp}
CSRCS=
USRLIBS= -lUtil -lDttools -lBaseTools -lrfunc -lPackage -lBaseProc -lMonitor -brtl -qstaticinline /
-lpthread -lchgPub -lPay -lAtComm
CSOBJS=${CSRCS:.cpp=.o} ${PCCGENSRCS:.cc=.o}
OBJS=$(CSOBJS)
all:$(PROGNAME)
val:
valgrind --tool=memcheck --leak-check=full --show-reachable=yes -v -q /
--log-file-exactly=./valgrindLog.txt ./run
clean:
- rm -f ./*.cc ./*.o ./*.a ./err.lis ./*.cpp ./tp* ./valgrindLog.txt ./err.lis
- rm -f
$(PROGNAME)
objects: $(PCCGENSRCS) $(OBJS) ${BASEOBJS}
$(PROGNAME):$(OBJS)
$(CPP) $(INCLUDE) $(LDFLAGS) -g $(OBJS) /
$(ORACLE_LIB) $(CPPTEST_LIB) /
-o $@
- rm -rf ./tp*
@echo ""
@echo "###########################################################"
@echo ""
@echo "
object [ $@ ] Loaded
"
@echo ""
@echo "###########################################################"
#@cp $@ ../bin
#@echo "cp $@ ../bin"