neo's profile十年一场梦 ..BlogListsGuestbookMore ![]() | Help |
|
|
11/18/2009 PERL TESTING 2http://sh-neo.spaces.live.com/blog/cns!1E3CA285E5F9E122!764.entry PERL TESTING C单元测试
检查test覆盖率
先安装 Devel::Cover cover -delete HARNESS_PERL_SWITCHES=-MDevel::Cover make test cover (需要修改Makefile.PL 以使make test可正常运行, 参考下其他模块的Makefile.PL怎么写的 ) 编写测试库, 扩展自己的测试函数 比如 is_between package Test::Between use base 'Exporter'; out @EXPORT=qw(is_between); //导出is_between use Test::Builder; my $Test=Test::Builder->new(); sub is_between($$$){
... $Test->ok(...) or $Test->diag(".."); } 测试库的测试... use xxx; use Test::Builder::Tester tests=>n; test_out("ok1 xxxx"); //预期要收到的消息
is_xxx; test_test(); //比较测试输出的信息是否与之前给定的信息相同 test_out("not ok1 xxx");
test_fail(+2); //下面第2行会测试错误 test_diag("xxx") //错误提示 is_xxx; test_test() 编写测试解析 扩展TAP use Test::Harness::Straps; my $strap=Test::Harness::Straps->new(); for my $file(@ARGV){
my %r=$strap->analyze_file($file); printf <<END,$file,@r(qw(max ok skip ...)); //max..等可自己选择 参看帮助 Results for %s Expected tests :%d pass: %d ... END } 测试pod文件 use Test::Pod; all_pod_files_ok(); 测试pod覆盖率
use Test::Pod::Coverage; all_pod_coverage_ok(); 测试整个模块--依赖性 版本号 pod...
use Test::Distribution; Test::Distribution->import(); 在Makefile.PL或Build.PL加入用户提示,由用户选择测试集
1)makefile use ExtUtils::MakeMaker; my %config=( .. ); my @p=qw(t/*.t); my $answer=prompt('xxx');
if($answer=~/y/i){ push @p,'t/long/*.t'; } $config{test}={TESTS=>join ' ', map {glob} @p};
WriteMakefile(%config); 2)build use Module::Build; my $answer=Module::Build->y_n(‘xxx’); if($answer){ ... } my $builder=Module::Build->new( ... test_files=>$p, ); $builder->create_build_script(); 建立模块缺省初始目录
安Module::Starter module-starter --mb --distro=xxx --author=xxx --email=xxx --verbose 自动生成测试报告
修改Build.PL use Module::Build::TestReporter; my $build=Module::Build::TestReporter->new( ... report_file=> 'xx', report_address=>'xx', ); $build->create_build_script(); 确保技量 require Test::Kwalitee; Test::Kwalitee->import(); TrackbacksThe trackback URL for this entry is: http://sh-neo.spaces.live.com/blog/cns!1E3CA285E5F9E122!766.trak Weblogs that reference this entry
|
|
|