- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PERL单元测试简易框架
PERL 单元测试简易框架
mnstory.net
本来是写个测试脚本来测试函数是否正确,写着写着就把输出写的漂亮了些,于是将代
码抽出来,做成一个公共框架。
说是框架,非常王婆卖瓜,因为就一百五十行SHELL 脚本,PERL 本是有单元测试的,但
是我认为几行代码用那单元测试有点小题大做,最关键是,我的需求非常少,就是要跑
几句代码,检测一下返回值,并且匹配一下预期数据,然后列出测试结果而已。
我之前喜欢这样简单测试PERL 函数代码:
perl -T -w -e use VTP::MutexVMs; use Data::Dumper; print
Dumper(VTP::MutexVMs::mutexVMIDs())
这样跑一遍,或者加-d 调试一下,函数是否有问题,一下就能看出来,唯一的问题是,
测试多组输入参数和输出的时候,每次都要靠双眼来对比结果是否符合预期。
有了此简易框架,两个函数的四条完整单元测试案例,你只需要类似这样写:
#!/bin/bash
. unitest.sh
#自定参数,随意!
MUTEXPATH= /cfs/mutexvms.xml
mutexVMIDs()
{
#设置一个单元测试案例名字
target=$FUNCNAME.readNormal
#准备输入参数,例如:准备文件
\cp -f $SCRIPTDIR/in/$target $MUTEXPATH
#开始执行PERL 代码,重定向输出到 $SCRIPTDIR/out/$target
perl -T -w -e use VTP::MutexVMs; use Data::Dumper; print
Dumper(VTP::MutexVMs::mutexVMIDs()) $SCRIPTDIR/out/$target
#对比结果,如果不比较返回值,只比较输入输出,用alwaysSuccess,其他的
还有 zeroSuccess equalSuccess nonZeroSuccess
alwaysSuccess $target read vmids normal
}
addMutexGroup()
{
target=$FUNCNAME.emptyAdd
rm -f $MUTEXPATH 2/dev/null
errno=`perl -T -w -e use VTP::MutexVMs; print
VTP::MutexVMs::addMutexGroup(6105658195070, 6460910776608)`
\cp -f $MUTEXPATH $SCRIPTDIR/out/$target
#对比返回值,如果返回值为0 表示成功,并且,会对比输出
zeroSuccess $errno $target remove $MUTEXPATH first, then
add
target=$FUNCNAME.emptyArg
errno=`perl -T -w -e use VTP::MutexVMs; print
VTP::MutexVMs::addMutexGroup()`
\cp -f $MUTEXPATH $SCRIPTDIR/out/$target
equalSuccess -1 $errno $target empty argments
target=$FUNCNAME.invalidArg
errno=`perl -T -w -e use VTP::MutexVMs; print
VTP::MutexVMs::addMutexGroup(undef, undef, undef)`
\cp -f $MUTEXPATH $SCRIPTDIR/out/$target
nonZeroSuccess $errno $target invalid argments
}
entry()
{
mutexVMIDs
addMutexGroup
}
main $@
然后在脚本目录下的 expected 目录准备对应测试案例名称的输出以便对比结果。执行
输出类似:
这是全成功的输出,最后一行可以看出,30 个案例,全部成功。
也有失败的效果:
只有一个成功,23 个
您可能关注的文档
最近下载
- 湖南省新高考教学教研(长郡二十校)联盟2024-2025学年高三上学期第一次预热演练物理试卷(含答案).pdf VIP
- 2025年长沙民政职业技术学院单招职业倾向性测试题库精选.docx VIP
- 2012款13东风本田艾力绅ELYSION_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 专题01:考纲词汇01-高考英语3500词精背精练(含答案).docx
- 脑卒中后抑郁课件篇.ppt
- 2025年1月浙江首考高考英语试卷真题完整版(含答案+听力原文).pdf
- 2024年四川省成都市武侯区中考语文二诊试卷.doc
- 2025年四川省绵阳市中考二模英语试题.pdf VIP
- 《资治通鉴》【全译本】.pdf
- 公路养护工技师考试试题1.doc
文档评论(0)