ps批处理怎么用,用批处理来自动化测试

近段时间在做PSO算法的优化,在测试性能时要使用CEC05的数据集。但这个数据集提供的测试函数接口十分蛋疼:以条件编译来区分一大堆同名同参数的函数。就像这样:
int a; #define f1 //#define f2
#ifdef f1 a = XX; double function() #endif
#ifdef f2 a = YY; double function() #endif
在上面的例子中,如果要运行F2函数,就要把#define f1注释掉,并取消#define f2的注释,然后编译运行。但在CEC05中,这样的函数共有25个。也就是说,进行一轮完整的测试就要手动这个过程25次。况且,肯定不止进行一轮测试。
面对这个问题,一开始想到的是将整个工程重构下,但在重构过程发现,条件编译用得比较分散,改下来很麻烦。而且还可能出现改错的情况,因此改到一半就放弃了。之后才想到适合做重复性日常工作的批处理。思路也很简单:将头文件复制25份,每份对应一种注释,即第一份将F1之外的define都注释掉,第二份将F2之外的define都注释掉。。。。。。然后依次将25份头文件覆盖工程的同名文件,重新编译,并运行。代码如下:
@echo off set testFun=1 :loop if %testFun%==26 goto end echo f%testFun% start at %time% copy D:\code\PSO\global\f%testFun%.h D:\code\PSO\win_test\global.h copy D:\code\PSO\global\cf%testFun%.h D:\code\PSO\myConstant.h msdev D:\code\PSO\pso.dsw /make /rebuild call D:\code\PSO\Debug\pso.exe f%testFun%_res.txt f%testFun%_mid.txt echo f%testFun% end at %time% set /a testFun=%testFun%+1 goto loop :end
这里解释下几个语句:copy a\x.h b\y.h 就是将路径a的x.h拷到路径b处并将名字改为y.h。 msdev path /make /rebuild 就是调用VC6的编译器,将path路径下的工程重新编译。call path argument1 argument2 就是调用path里的exe,并将argument1和argument2作为参数传给那个exe。
有了这个批处理后,之后的测试只要双击下就行了>_<

Tags:  自动化测试工具 自动化测试 用批处理文件 用批处理 ps批处理怎么用

延伸阅读

最新评论

发表评论