tcl集成测试环境搭建指南

上传人:无*** 文档编号:84794847 上传时间:2022-05-04 格式:DOC 页数:14 大小:662.50KB
收藏 版权申诉 举报 下载
tcl集成测试环境搭建指南_第1页
第1页 / 共14页
tcl集成测试环境搭建指南_第2页
第2页 / 共14页
tcl集成测试环境搭建指南_第3页
第3页 / 共14页
资源描述:

《tcl集成测试环境搭建指南》由会员分享,可在线阅读,更多相关《tcl集成测试环境搭建指南(14页珍藏版)》请在装配图网上搜索。

1、Tcl集成测试环境搭建指南博为峰软件技术XX51testing20XX1月修订记录日期修订版本修改章节修改描述作者2006-1-171.0初稿完成周峰第一步:获取tcl8.3的安装包,安装到c:目录下(安装时一定要选取lib库安装)。第二步:利用Visual C+建立一个Win32 Console Application 工程,工程的名字为CounterTest。因为被测对象有MFC类,所以该工程应该支持MFC:第三步:参照下面两个图,分别创建test.h和test.cpp文件。这两个文件均为空文件。第四步:添加被测试模块的代码1)把下面的代码拷贝到文件test.cpp中:2)把下面的代码拷贝

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解释器

3、,例如:(红色部分代码)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;e

4、lse/ 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

5、)/通过嵌入集成测试框架的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)strHel

6、lo 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 cod

7、e 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(MyInt

8、erp,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(Tes

9、ting 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 err

10、or 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(MyI

11、nterp);/注册扩展指令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(My

12、Interp,(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

13、 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 p

14、rint 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解释器

15、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_

16、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包的库文件路径:第九步:实现扩展指令。参考代

17、码: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 My

18、test;/第一步:检查参数个数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,argv

19、3,&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;/取期望输出空行行

20、数if (TCL_OK != Tcl_GetInt(interp,argv6,&aExceptedRet) interp-result = para6 error;return TCL_OK;/取期望输出注释行行数if (TCL_OK != Tcl_GetInt(interp,argv7,&bExceptedRet) interp-result = para7 error;return TCL_OK;/取期望输出代码行行数if (TCL_OK != Tcl_GetInt(interp,argv8,&cExceptedRet) interp-result = para8 error;return

21、 TCL_OK;/取期望输出总行行数if (TCL_OK != Tcl_GetInt(interp,argv9,&dExceptedRet) interp-result = para9 error;return TCL_OK;/第三步:调用被测函数Mytest.MainStatFun();aRet = g_iBlankLineNum;bRet = g_iCommLineNum;cRet = g_iCodeLineNum;dRet = g_iTotalLineNum;/第四步:测试结果比较if (aRet != aExceptedRet) | (bRet != bExceptedRet) | (cRet != cExceptedRet) | (dRet != dExceptedRet) interp-result = Test Failed!;else interp-result = Test Succeded!;return TCL_OK;14 / 14

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!