




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Tcl集成测试环境搭建指南博为峰软件技术有限公司2006年1月修订记录日期修订版本修改章节修改描述作者2006-1-171.0初稿完成周峰第一步:获取tcl8.3的安装包,安装到c:目录下(安装时一定要选取lib库安装)。第二步:利用Visual C+建立一个Win32 Console Application 工程,工程的名字为CounterTest。因为被测对象有MFC类,所以该工程应该支持MFC:第三步:参照下面两个图,分别创建test.h和test.cpp文件。这两个文件均为空文件。第四步:添加被测试模块的代码1)把下面的代码拷贝到文件test.cpp中:2)把下面的代码拷贝到文件test.h中第五步:添加tcl扩展指令代码1)把下面的代码拷贝到文件CounterTest.cpp中:#include tcl.h#include test.h第六步:1)定义tcl解释器:通过使用TCL内部的数据类型Tcl_Interp定义TCL解释器全局变量。在文件CounterTest.cpp中定义tcl解释器,即全局变量:Tcl_Interp* MyInterp;例如:(红色部分为添加的代码)/定义解释器Tcl_Interp* MyInterp;2)创建解释器:通过使用TCL函数Tcl_CreateInterp()创建解释器。在文件CounterTest.cpp中创建tcl解释器,例如:(红色部分代码)int _tmain(int argc, TCHAR* argv, TCHAR* envp)int nRetCode = 0;/ initialize MFC and print and error on failureif (!AfxWinInit(:GetModuleHandle(NULL), NULL, :GetCommandLine(), 0)/ TODO: change error code to suit your needscerr _T(Fatal Error: MFC initialization failed) endl;nRetCode = 1;else/ TODO: code your applications behavior here./创建tcl解释器MyInterp = Tcl_CreateInterp(); /初始化Tcl解释器Tcl_Init(MyInterp);/创建外部命令COUNTER,该外部命令可以被tcl解释器识别,并且执行COUNTER命令的时候,直/接调用外部命令函数TclEx_Counter。Tcl_CreateCommand(MyInterp,COUNTER,TclEx_Counter,NULL,NULL);int rCode;char sScript255;/CString sScript; while(1)/通过嵌入集成测试框架的Tcl解释器MyInterp,运行外部传入的tcl脚本printf(请输入要执行的TCL脚本文件名:n);scanf(%s,&sScript);rCode = Tcl_EvalFile(MyInterp,(char *)sScript );if (TCL_OK != rCode )printf(There are errors in your Tcl Filen); else printf(Testing Succeed!n);/CString strHello;/strHello.LoadString(IDS_HELLO);/cout (LPCTSTR)strHello endl;return nRetCode;3)初始化解释器:通过使用TCL函数Tcl_Init()初始化解释器。在文件CounterTest.cpp中初始化tcl解释器,例如:(红色部分代码)int _tmain(int argc, TCHAR* argv, TCHAR* envp)int nRetCode = 0;/ initialize MFC and print and error on failureif (!AfxWinInit(:GetModuleHandle(NULL), NULL, :GetCommandLine(), 0)/ TODO: change error code to suit your needscerr _T(Fatal Error: MFC initialization failed) endl;nRetCode = 1;else/ TODO: code your applications behavior here./创建tcl解释器MyInterp = Tcl_CreateInterp(); /初始化Tcl解释器Tcl_Init(MyInterp);/创建外部命令COUNTER,该外部命令可以被tcl解释器识别,并且执行COUNTER命令的时候,直/接调用外部命令函数TclEx_Counter。Tcl_CreateCommand(MyInterp,COUNTER,TclEx_Counter,NULL,NULL);int rCode;char sScript255;/CString sScript; while(1)/通过嵌入集成测试框架的Tcl解释器MyInterp,运行外部传入的tcl脚本printf(请输入要执行的TCL脚本文件名:n);scanf(%s,&sScript);rCode = Tcl_EvalFile(MyInterp,(char *)sScript );if (TCL_OK != rCode )printf(There are errors in your Tcl Filen); else printf(Testing Succeed!n);/CString strHello;/strHello.LoadString(IDS_HELLO);/cout (LPCTSTR)strHello endl;return nRetCode;4)向解释器注册扩展指令:通过使用TCL函数Tcl_CreateCommand()向解释器注册自定义扩展指令。在文件CounterTest.cpp中注册扩展指令,例如:(红色部分代码)int _tmain(int argc, TCHAR* argv, TCHAR* envp)int nRetCode = 0;/ initialize MFC and print and error on failureif (!AfxWinInit(:GetModuleHandle(NULL), NULL, :GetCommandLine(), 0)/ TODO: change error code to suit your needscerr _T(Fatal Error: MFC initialization failed) endl;nRetCode = 1;else/ TODO: code your applications behavior here./创建tcl解释器MyInterp = Tcl_CreateInterp(); /初始化Tcl解释器Tcl_Init(MyInterp);/注册扩展指令COUNTER,该扩展指令可以被tcl解释器识别,并且执行COUNTER的时候,直接调用扩展指令对应处理函数TclEx_Counter。Tcl_CreateCommand(MyInterp,COUNTER,TclEx_Counter,NULL,NULL);int rCode;char sScript255;/CString sScript; while(1)/通过嵌入集成测试框架的Tcl解释器MyInterp,运行外部传入的tcl脚本printf(请输入要执行的TCL脚本文件名:n);scanf(%s,&sScript);rCode = Tcl_EvalFile(MyInterp,(char *)sScript );if (TCL_OK != rCode )printf(There are errors in your Tcl Filen); else printf(Testing Succeed!n);/CString strHello;/strHello.LoadString(IDS_HELLO);/cout (LPCTSTR)strHello endl;return nRetCode;5)定义扩展指令COUNTER对应的处理函数TclEx_Counter()#include stdafx.h#include CounterTest.h#include tcl.h#include test.hint TclEx_Counter(ClientData clientData,Tcl_Interp * interp,int argc, char* argv)return TCL_OK;6)执行外部传入的TCL脚本文件:通过使用TCL函数Tcl_EvalFile()执行外部传入的TCL脚本文件。在文件CounterTest.cpp中添加执行外部脚本文件的代码,例如:(红色部分代码)int _tmain(int argc, TCHAR* argv, TCHAR* envp)int nRetCode = 0;/ initialize MFC and print and error on failureif (!AfxWinInit(:GetModuleHandle(NULL), NULL, :GetCommandLine(), 0)/ TODO: change error code to suit your needscerr _T(Fatal Error: MFC initialization failed) endl;nRetCode = 1;else/ TODO: code your applications behavior here./创建tcl解释器MyInterp = Tcl_CreateInterp(); /初始化Tcl解释器Tcl_Init(MyInterp);/创建外部命令COUNTER,该外部命令可以被tcl解释器识别,并且执行COUNTER命令的时候,直/接调用外部命令函数TclEx_Counter。Tcl_CreateCommand(MyInterp,COUNTER,TclEx_Counter,NULL,NULL);int rCode;char sScript255;/CString sScript; while(1)/通过嵌入集成测试框架的Tcl解释器MyInterp,运行外部传入的tcl脚本printf(请输入要执行的TCL脚本文件名:n);scanf(%s,&sScript);rCode = Tcl_EvalFile(MyInterp,(char *)sScript );if (TCL_OK != rCode )printf(There are errors in your Tcl Filen); else printf(Testing Succeed!n);/CString strHello;/strHello.LoadString(IDS_HELLO);/cout (LPCTSTR)strHello Option-Directory.菜单中,设置tcl83包的头文件路径:3)在tool-Option-Directory.菜单中,设置tcl83包的库文件路径:第九步:实现扩展指令。参考代码:int TclEx_Counter(ClientData clientData,Tcl_Interp * interp,int argc, char* argv)/定义实际输出int aRet; /实际输出空行行数int bRet; /实际输出注释行行数int cRet; /实际输出代码行行数int dRet; /实际输出总行行数/定义期望输出int aExceptedRet; /期望输出空行行数int bExceptedRet; /期望输出注释行行数int cExceptedRet; /期望输出代码行行数int dExceptedRet; /期望输出总行行数/定义被测对象CTest Mytest;/第一步:检查参数个数if (10 != argc)interp-result = Error para number!;return TCL_OK;/第二步:取出参数Mytest.g_szStatFileName = argv1; /取文件路径/str = argv1; /取统计空行标志位if (TCL_OK != Tcl_GetInt(interp,argv2,&g_bStatBlankLineFlag) interp-result = para2 error;return TCL_OK; /取统计注释行标志位if (TCL_OK != Tcl_GetInt(interp,argv3,&g_bStatCommLineFlag) interp-result = para3 error;return TCL_OK;/取统计代码行标志位if (TCL_OK != Tcl_GetInt(interp,argv4,&g_bStatCodeLineFlag) interp-result = para4 error;return TCL_OK;/取统计总行行标志位if (TCL_OK != Tcl_GetInt(interp,argv5,&g_bStatTotalLineFlag) interp-result = para5 error;return TCL_OK;/取期望输出空行行数if (TCL_OK != Tcl_GetInt(interp,argv6,&aExceptedRet) interp-result = para6 error;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年数据分析师招聘面试预测题及解答技巧
- 2025年机器学习高级工程师模拟面试题及答案解析
- 2025年高级火电运行值班员必-备知识及面试模拟题解析
- 23水平三-小篮球《行进间体前变向运球》教案
- 2025年物流管理师招聘考试模拟题及参考答案
- 电力公司消防知识培训课件
- 2025年防汛抗旱应急救援中心职位招聘面试题库及参考答案
- 2025年采购经理中级面试技巧指南与模拟试题集
- 2025年特岗教师招聘考试备考手册初中历史
- 2025年特岗教师招聘笔试英语学科模拟试题及答案解析
- 化工设备基础知识培训课件
- 产科危急重症早期识别中国专家共识(2025年版)
- 福建福州工会招聘工会社会工作者笔试真题2024
- 医疗生产安全知识培训课件
- 化学品使用安全知识培训课件
- 中国丝绸课件
- 2025年【秋季】小学【一年级】开笔礼校长致辞:翰墨初启 开笔破蒙
- 2025年事业单位工勤技能-河北-河北保安员二级(技师)历年参考题库含答案解析(5卷套题【单选100题】)
- 2025至2030全球及中国互联网安全审核行业运营态势与投资前景调查研究报告
- 残疾儿童孤独症康复服务定点机构项目方案投标文件(技术方案)
- 2024年安徽省泗县人民医院公开招聘护理工作人员试题带答案详解
评论
0/150
提交评论