tcl集成测试环境搭建指南(Console版)_第1页
tcl集成测试环境搭建指南(Console版)_第2页
tcl集成测试环境搭建指南(Console版)_第3页
tcl集成测试环境搭建指南(Console版)_第4页
tcl集成测试环境搭建指南(Console版)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Tcl集成测试环境搭建指南博为峰软件技术有限公司2006年1月修订记录录日期修订版本本修改章节节修改描述述作者20066-1-171.0初稿完成成周峰第一步:获取tccl8.3的安安装包,安安装到cc:目目录下(安安装时一一定要选选取liib库安安装)。第二步:利用Viisuaal CC+建建立一个个Winn32 Coonsoole Apppliccatiion 工程,工工程的名名字为CCounnterrTesst。因为被测测对象有有MFCC类,所所以该工工程应该该支持MMFC:第三步:参照下面面两个图图,分别别创建ttestt.h和和tesst.ccpp文文件。这这两个文件件均为空空文件。第

2、四步:添加被测测试模块块的代码码1)把下下面的代代码拷贝贝到文件件tesst.ccpp中中:2)把下下面的代代码拷贝贝到文件件tesst.hh中第五步:添加tccl扩展展指令代代码1)把下下面的代代码拷贝贝到文件件CouunteerTeest.cppp中:#inccludde tcll.h#inccludde tesst.hh第六步:1)定义义tcll解释器器:通过过使用TTCL内内部的数数据类型型Tcll_Innterrp定义义TCLL解释器器全局变变量。在在文件CCounnterrTesst.ccpp中中定义ttcl解解释器,即全局变量:Tcl_Interp* MyInterp;例如:(红

3、红色部分分为添加加的代码码)/定义义解释器器Tcl_Intterpp* MMyInnterrp;2)创建建解释器器:通过过使用TTCL函函数Tccl_CCreaateIInteerp()创创建解释释器。在文件CCounnterrTesst.ccpp中中创建ttcl解解释器,例例如:(红红色部分分代码)int _tmmainn(innt aargcc, TTCHAAR* arggv, TTCHAAR* envvp)intt nRRetCCodee = 0;/ iniitiaalizze MMFC andd prrintt annd eerroor oon ffaillureeif (!AAfxW

4、WinIInitt(:GettModduleeHanndlee(NUULL), NNULLL, :GeetCoommaandLLinee(), 0)/ TOODO: chhangge eerroor ccodee too suuit youur nneeddsceerr _T(Faatall Errrorr: MMFC iniitiaalizzatiion faiiledd) enddl;nRRetCCodee = 1;elsse/ TOODO: coode youur aappllicaatioonss beehavviorr heere./创建ttcl解解释器MyyIntterpp = T

5、cll_CrreatteInnterrp();/初始始化Tccl解释释器Tccl_IInitt(MyyIntterpp);/创建外外部命令令COUUNTEER,该该外部命命令可以以被tccl解释释器识别别,并且且执行CCOUNNTERR命令的的时候,直直/接接调用外外部命令令函数TTclEEx_CCounnterr。Tccl_CCreaateCCommmandd(MyyIntterpp,CCOUNNTERR,TTclEEx_CCounnterr,NUULL,NULLL);innt rrCodde;chhar sSccrippt2255;/CSttrinng ssScrriptt;whhilee

6、(1)/通过过嵌入集集成测试试框架的的Tcll解释器器MyIInteerp,运运行外部部传入的的tcll脚本pprinntf(请输输入要执执行的TTCL脚脚本文件件名:n);sscannf(%s,&ssScrriptt);rrCodde = Tccl_EEvallFille(MMyInnterrp,(chaar *)sSScriipt );iif (TCCL_OOK != rrCodde )priintff(TTherre aare errrorss inn yoour Tcll Fiilen); eelsee priintff(TTesttingg Suucceeed!n);/CSttrin

7、ng sstrHHelllo;/strrHelllo.LoaadSttrinng(IIDS_HELLLO);/couut (LPCCTSTTR)sstrHHelllo eendll;retturnn nRRetCCodee;3)初始始化解释释器:通通过使用用TCLL函数TTcl_Iniit()初初始化解解释器。在文件CCounnterrTesst.ccpp中中初始化化tcll解释器器,例如如:(红红色部分分代码)int _tmmainn(innt aargcc, TTCHAAR* arggv, TTCHAAR* envvp)intt nRRetCCodee = 0;/ iniitiaalizz

8、e MMFC andd prrintt annd eerroor oon ffaillureeif (!AAfxWWinIInitt(:GettModduleeHanndlee(NUULL), NNULLL, :GeetCoommaandLLinee(), 0)/ TOODO: chhangge eerroor ccodee too suuit youur nneeddsceerr _T(Faatall Errrorr: MMFC iniitiaalizzatiion faiiledd) enddl;nRRetCCodee = 1;elsse/ TOODO: coode youur aappl

9、licaatioonss beehavviorr heere./创建建tcll解释器器MyyIntterpp = Tcll_CrreatteInnterrp();/初始始化Tccl解释释器Tccl_IInitt(MyyIntterpp);/创建外外部命令令COUUNTEER,该该外部命命令可以以被tccl解释释器识别别,并且且执行CCOUNNTERR命令的的时候,直直/接接调用外外部命令令函数TTclEEx_CCounnterr。Tccl_CCreaateCCommmandd(MyyIntterpp,CCOUNNTERR,TTclEEx_CCounnterr,NUULL,NULLL);innt

10、 rrCodde;chhar sSccrippt2255;/CSttrinng ssScrriptt;whhilee(1)/通过过嵌入集集成测试试框架的的Tcll解释器器MyIInteerp,运运行外部部传入的的tcll脚本pprinntf(请输输入要执执行的TTCL脚脚本文件件名:n);sscannf(%s,&ssScrriptt);rrCodde = Tccl_EEvallFille(MMyInnterrp,(chaar *)sSScriipt );iif (TCCL_OOK != rrCodde )priintff(TTherre aare errrorss inn yoour Tcll

11、 Fiilen); eelsee priintff(TTesttingg Suucceeed!n);/CSttrinng sstrHHelllo;/strrHelllo.LoaadSttrinng(IIDS_HELLLO);/couut (LPCCTSTTR)sstrHHelllo eendll;retturnn nRRetCCodee;4)向解解释器注注册扩展展指令:通过使使用TCCL函数数Tcll_CrreatteCoommaand()向解释器器注册自自定义扩扩展指令令。在文件CCounnterrTesst.ccpp中中注册扩扩展指令令,例如如:(红红色部分分代码)int _tmmainn

12、(innt aargcc, TTCHAAR* arggv, TTCHAAR* envvp)intt nRRetCCodee = 0;/ iniitiaalizze MMFC andd prrintt annd eerroor oon ffaillureeif (!AAfxWWinIInitt(:GettModduleeHanndlee(NUULL), NNULLL, :GeetCoommaandLLinee(), 0)/ TOODO: chhangge eerroor ccodee too suuit youur nneeddsceerr _T(Faatall Errrorr: MMFC in

13、iitiaalizzatiion faiiledd) enddl;nRRetCCodee = 1;elsse/ TOODO: coode youur aappllicaatioonss beehavviorr heere./创建建tcll解释器器MyyIntterpp = Tcll_CrreatteInnterrp();/初始始化Tccl解释释器Tccl_IInitt(MyyIntterpp);/注册册扩展指指令COOUNTTER,该该扩展指指令可以以被tccl解释释器识别别,并且且执行CCOUNNTERR的时候候,直接接调用扩扩展指令令对应处处理函数数TcllEx_Couunteer。Tcc

14、l_CCreaateCCommmandd(MyyIntterpp,CCOUNNTERR,TTclEEx_CCounnterr,NUULL,NULLL);innt rrCodde;chhar sSccrippt2255;/CSttrinng ssScrriptt;whhilee(1)/通过过嵌入集集成测试试框架的的Tcll解释器器MyIInteerp,运运行外部部传入的的tcll脚本pprinntf(请输输入要执执行的TTCL脚脚本文件件名:n);sscannf(%s,&ssScrriptt);rrCodde = Tccl_EEvallFille(MMyInnterrp,(chaar *)sSS

15、criipt );iif (TCCL_OOK != rrCodde )priintff(TTherre aare errrorss inn yoour Tcll Fiilen); eelsee priintff(TTesttingg Suucceeed!n);/CSttrinng sstrHHelllo;/strrHelllo.LoaadSttrinng(IIDS_HELLLO);/couut (LPCCTSTTR)sstrHHelllo eendll;retturnn nRRetCCodee;5)定义义扩展指指令COOUNTTER对对应的处处理函数数TcllEx_Couunteer()#in

16、ccludde stddafxx.h#inccludde CouunteerTeest.h#inccludde tcll.h#inccludde tesst.hhint TcllEx_Couunteer(CClieentDDataa cllienntDaata,Tcll_Innterrp * innterrp,iint arggc, chhar* arrgv)retturnn TCCL_OOK;6)执行行外部传传入的TTCL脚脚本文件件:通过过使用TTCL函函数Tccl_EEvallFille()执执行外部部传入的的TCLL脚本文文件。在文件CCounnterrTesst.ccpp中中添加执执

17、行外部部脚本文文件的代代码,例例如:(红红色部分分代码)int _tmmainn(innt aargcc, TTCHAAR* arggv, TTCHAAR* envvp)intt nRRetCCodee = 0;/ iniitiaalizze MMFC andd prrintt annd eerroor oon ffaillureeif (!AAfxWWinIInitt(:GettModduleeHanndlee(NUULL), NNULLL, :GeetCoommaandLLinee(), 0)/ TOODO: chhangge eerroor ccodee too suuit youur

18、nneeddsceerr _T(Faatall Errrorr: MMFC iniitiaalizzatiion faiiledd) enddl;nRRetCCodee = 1;elsse/ TOODO: coode youur aappllicaatioonss beehavviorr heere./创建建tcll解释器器MyyIntterpp = Tcll_CrreatteInnterrp();/初始始化Tccl解释释器Tccl_IInitt(MyyIntterpp);/创建建外部命命令COOUNTTER,该该外部命命令可以以被tccl解释释器识别别,并且且执行CCOUNNTERR命令的的

19、时候,直直/接接调用外外部命令令函数TTclEEx_CCounnterr。Tccl_CCreaateCCommmandd(MyyIntterpp,CCOUNNTERR,TTclEEx_CCounnterr,NUULL,NULLL);int rCoode;chhar sSccrippt2255;/CSttrinng ssScrriptt;whhilee(1)/通过过嵌入集集成测试试框架的的Tcll解释器器MyIInteerp,运运行外部部传入的的tcll脚本pprinntf(请输输入要执执行的TTCL脚脚本文件件名:n);sscannf(%s,&ssScrriptt);rrCodde = Tcc

20、l_EEvallFille(MMyInnterrp,(chaar *)sSScriipt );iif (TCCL_OOK != rrCodde )priintff(TTherre aare errrorss inn yoour Tcll Fiilen); eelsee priintff(TTesttingg Suucceeed!n);/CSttrinng sstrHHelllo;/strrHelllo.LoaadSttrinng(IIDS_HELLLO);/couut (LPCCTSTTR)sstrHHelllo Opptioon-Diirecctorry.菜单单中,设设置tccl833包的头

21、头文件路路径:3)在toool-Opptioon-Diirecctorry.菜单单中,设设置tccl833包的库库文件路路径:第九步:实现扩扩展指令令。参考代代码:int TcllEx_Couunteer(CClieentDDataa cllienntDaata,Tcll_Innterrp * innterrp,iint arggc, chhar* arrgv)/定定义实际际输出intt aRRet; /实际际输出空空行行数数intt bRRet; /实际际输出注注释行行行数intt cRRet; /实际际输出代代码行行行数intt dRRet; /实际际输出总总行行数数/定定义期望望输出in

22、tt aEExceepteedReet; /期望输输出空行行行数intt bEExceepteedReet; /期望输输出注释释行行数数intt cEExceepteedReet; /期望输输出代码码行行数数intt dEExceepteedReet; /期望输输出总行行行数/定定义被测测对象CTeest Myttestt;/第第一步:检查参参数个数数if (100 != arrgc)innterrp-ressultt = Errrorr paara nummberr!;reeturrn TTCL_OK;/第第二步:取出参参数Myttestt.g_szSStattFilleNaame = aa

23、rgvv1; /取文文件路径径/sstr = aargvv1;/取取统计空空行标志志位if (TCCL_OOK != TTcl_GettIntt(innterrp,aargvv2,&gg_bSStattBlaankLLineeFlaag) innterrp-ressultt = paara22 errrorr;reeturrn TTCL_OK; /取取统计注注释行标标志位if (TCCL_OOK != TTcl_GettIntt(innterrp,aargvv3,&gg_bSStattCommmLiineFFlagg) innterrp-ressultt = paara33 errrorr;r

24、eeturrn TTCL_OK;/取取统计代代码行标标志位if (TCCL_OOK != TTcl_GettIntt(innterrp,aargvv4,&gg_bSStattCoddeLiineFFlagg) innterrp-ressultt = paara44 errrorr;reeturrn TTCL_OK;/取取统计总总行行标标志位if (TCCL_OOK != TTcl_GettIntt(innterrp,aargvv5,&gg_bSStattTottalLLineeFlaag) innterrp-ressultt = paara55 errrorr;reeturrn TTCL_OK;/取取期望输输出空行行行数if (TCCL_OOK != TTcl_GettIntt(innterrp,aargvv6,&aaExccepttedRRet) innterrp-ressultt = paara66

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论