tcl集成测试环境搭建指南(Console版)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

021-64471599慧谷—博为峰软件测试工作室Tcl集成测试环境搭建指南博为峰软件技术有限公司慧谷—博为峰软件测试工作室修订记录日期修订版本修改章节修改描述作者2006-1-171.0初稿完成周峰021-64471599慧谷—博为峰软件测试工作室第一步:获取tcl8.3的安装包,安装到c:\目录下(安装时一定要选取lib库安装)。第二步:利用VisualC++建立一个Win32ConsoleApplication工程,工程的名字为CounterTest。因为被测对象有MFC类,所以该工程应该支持MFC:021-64471599慧谷—博为峰软件测试工作室第三步:参照下面两个图,分别创建test.h和test.cpp文件。这两个文件均为空文件。021-64471599慧谷—博为峰软件测试工作室第四步:添加被测试模块的代码1)把下面的代码拷贝到文件test.cpp中:2)把下面的代码拷贝到文件test.h中第五步:添加tcl扩展指令代码1)把下面的代码拷贝到文件CounterTest.cpp中:#includetcl.h#includetest.h第六步:1)定义tcl解释器:通过使用TCL内部的数据类型Tcl_Interp定义TCL解释器全局变量。在文件CounterTest.cpp中定义tcl解释器,即全局变量:Tcl_Interp*MyInterp;例如:(红色部分为添加的代码)//定义解释器Tcl_Interp*MyInterp;021-64471599慧谷—博为峰软件测试工作室2)创建解释器:通过使用TCL函数Tcl_CreateInterp()创建解释器。在文件CounterTest.cpp中创建tcl解释器,例如:(红色部分代码)int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;//initializeMFCandprintanderroronfailureif(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)){//TODO:changeerrorcodetosuityourneedscerr_T(FatalError:MFCinitializationfailed)endl;nRetCode=1;}else{//TODO:codeyourapplication'sbehaviorhere.//创建tcl解释器MyInterp=Tcl_CreateInterp();//初始化Tcl解释器Tcl_Init(MyInterp);//创建外部命令COUNTER,该外部命令可以被tcl解释器识别,并且执行COUNTER命令的时候,直//接调用外部命令函数TclEx_Counter。Tcl_CreateCommand(MyInterp,COUNTER,TclEx_Counter,NULL,NULL);intrCode;charsScript[255];//CStringsScript;while(1){//通过嵌入集成测试框架的Tcl解释器MyInterp,运行外部传入的tcl脚本printf(请输入要执行的TCL脚本文件名:\n);scanf(%s,&sScript);rCode=Tcl_EvalFile(MyInterp,(char*)sScript);if(TCL_OK!=rCode){printf(ThereareerrorsinyourTclFile\n);}else{printf(TestingSucceed!\n);021-64471599慧谷—博为峰软件测试工作室}//CStringstrHello;//strHello.LoadString(IDS_HELLO);//cout(LPCTSTR)strHelloendl;}}returnnRetCode;}3)初始化解释器:通过使用TCL函数Tcl_Init()初始化解释器。在文件CounterTest.cpp中初始化tcl解释器,例如:(红色部分代码)int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;//initializeMFCandprintanderroronfailureif(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)){//TODO:changeerrorcodetosuityourneedscerr_T(FatalError:MFCinitializationfailed)endl;nRetCode=1;}else{//TODO:codeyourapplication'sbehaviorhere.//创建tcl解释器MyInterp=Tcl_CreateInterp();//初始化Tcl解释器Tcl_Init(MyInterp);//创建外部命令COUNTER,该外部命令可以被tcl解释器识别,并且执行COUNTER命令的时候,直//接调用外部命令函数TclEx_Counter。Tcl_CreateCommand(MyInterp,COUNTER,TclEx_Counter,NULL,NULL);intrCode;charsScript[255];//CStringsScript;while(1){//通过嵌入集成测试框架的Tcl解释器MyInterp,运行外部传入的tcl脚本021-64471599慧谷—博为峰软件测试工作室printf(请输入要执行的TCL脚本文件名:\n);scanf(%s,&sScript);rCode=Tcl_EvalFile(MyInterp,(char*)sScript);if(TCL_OK!=rCode){printf(ThereareerrorsinyourTclFile\n);}else{printf(TestingSucceed!\n);}//CStringstrHello;//strHello.LoadString(IDS_HELLO);//cout(LPCTSTR)strHelloendl;}}returnnRetCode;}4)向解释器注册扩展指令:通过使用TCL函数Tcl_CreateCommand()向解释器注册自定义扩展指令。在文件CounterTest.cpp中注册扩展指令,例如:(红色部分代码)int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;//initializeMFCandprintanderroronfailureif(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)){//TODO:changeerrorcodetosuityourneedscerr_T(FatalError:MFCinitializationfailed)endl;nRetCode=1;}else{//TODO:codeyourapplication'sbehaviorhere.//创建tcl解释器MyInterp=Tcl_CreateInterp();//初始化Tcl解释器Tcl_Init(MyInterp);021-64471599慧谷—博为峰软件测试工作室//注册扩展指令COUNTER,该扩展指令可以被tcl解释器识别,并且执行COUNTER的时候,直接调用扩展指令对应处理函数TclEx_Counter。Tcl_CreateCommand(MyInterp,COUNTER,TclEx_Counter,NULL,NULL);intrCode;charsScript[255];//CStringsScript;while(1){//通过嵌入集成测试框架的Tcl解释器MyInterp,运行外部传入的tcl脚本printf(请输入要执行的TCL脚本文件名:\n);scanf(%s,&sScript);rCode=Tcl_EvalFile(MyInterp,(char*)sScript);if(TCL_OK!=rCode){printf(ThereareerrorsinyourTclFile\n);}else{printf(TestingSucceed!\n);}//CStringstrHello;//strHello.LoadString(IDS_HELLO);//cout(LPCTSTR)strHelloendl;}}returnnRetCode;}5)定义扩展指令COUNTER对应的处理函数TclEx_Counter()#includestdafx.h#includeCounterTest.h#includetcl.h#includetest.hintTclEx_Counter(ClientDataclientData,Tcl_Interp*interp,intargc,char*argv[]){021-64471599慧谷—博为峰软件测试工作室returnTCL_OK;}6)执行外部传入的TCL脚本文件:通过使用TCL函数Tcl_EvalFile()执行外部传入的TCL脚本文件。在文件CounterTest.cpp中添加执行外部脚本文件的代码,例如:(红色部分代码)int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;//initializeMFCandprintanderroronfailureif(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)){//TODO:changeerrorcodetosuityourneedscerr_T(FatalError:MFCinitializationfailed)endl;nRetCode=1;}else{//TODO:codeyourapplication'sbehaviorhere.//创建tcl解释器MyInterp=Tcl_CreateInterp();//初始化Tcl解释器Tcl_Init(MyInterp);//创建外部命令COUNTER,该外部命令可以被tcl解释器识别,并且执行COUNTER命令的时候,直//接调用外部命令函数TclEx_Counter。Tcl_CreateCommand(MyInterp,COUNTER,TclEx_Counter,NULL,NULL);intrCode;charsScript[255];//CStringsScript;while(1){//通过嵌入集成测试框架的Tcl解释器MyInterp,运行外部传入的tcl脚本printf(请输入要执行的TCL脚本文件名:\n);scanf(%s,&sScript);rCode=Tcl_EvalFile(MyInterp,(char*)sScript);if(TCL_OK!=rCode){printf(ThereareerrorsinyourTclFile\n);021-64471599慧谷—博为峰软件测试工作室}else{printf(TestingSucceed!\n);}//CStrings

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功