代码本来写在一个JS文件里面,执行方式如下:
casperjs test xxx.js
可是代码超过1500行后,只有我自己看得明白,必须拆分(独立文件&逻辑复用)!
拆分后怎么执行呢?如下:
casperjs test --includes=1.js,2.js,3,js,4.js testcase_code1.js --xunit=tesecase01_result.xml
文件1.js,2.js,3.js,4.js就是拆分出去的实现代码,testcase_code1.js可以当作是测试用例的执行步骤代码。
目前我的测试步骤部分现状是链式调用:
casper.test.begin("xxx", function(){ casper.start("http://xx.xx.com"); casper.then(fun_a).then(fun_b).then(fun_c); casper.run(function(){ // ... }) })
方法fun_a、fun_b、fun_c的实现都在拆分出去的那些文件。
includes包括了一长串文件列表,容易错误;这里有优化的空间,可以从CasperJS的run.js入手增加定制逻辑(根据自己项目的需要,不过我还没有时间去搞这个)
附加几句废话:
fun_a这些方法如果放在casper.then里面调用,只能是一个实现形式不能是执行形式;
比如casper.then(fun_a)正确但是casper.then(fun_a(str1, str2))肯定错误!
怎么办呢?不能带参数肯定不方便,其实可以在fun_a实现时搞一个闭包返回function即可。
tips:有些方法的实现是闭包,有些方法不是闭包,有点乱。
时间: 2024-12-28 19:37:37