在开发过程中测试perl模块的正确方法是什么?

我正在开发一个个人Perl模块来构建一个基本的脚本框架,并帮助我学习更多有关该语言的知识.我通过命令行工具 modulemakerExtUtils::ModuleMaker创建了一个名为“AWSTools :: Framework”的新模块.我试图找出在开发过程中测试它的合适方法.

创建的目录结构包括以下内容

./AWSTOOLS/Framework/lib/AWSTools/Framework.pm
./AWSTOOLS/Framework/t/001_load.t

自动生成的001_load.t文件如下所示:

# -*- perl -*-

# t/001_load.t - check module loading and create testing directory

use Test::More tests => 2;

BEGIN { use_ok( 'AWSTools::Framework' ); }

my $object = AWSTools::Framework->new ();
isa_ok ($object,'AWSTools::Framework');

如果我尝试直接运行脚本(从命令行或在我的TextMate编辑器中),它将失败:

Can't locate AWSTools/Framework.pm in @INC....

如果我尝试在./AWSTOOLS/Framework目录中运行prove,它也会失败.

问题是:在开发Perl模块时运行测试的正确方法是什么?

解决方法

如果你想运行一个测试文件,你需要告诉perl在哪里找到你的模块,就像你对任何其他程序一样.我使用 blib自动添加正确的路径:

$perl Makefile.PL; make; perl -Mblib t/some_test.t

你也可以用证明来做同样的事情.我不使用证明,但你可以阅读它的文档来弄清楚. -b开关应该这样做,但我遇到的问题是没有做正确的事情(可能只是我自己的愚蠢).

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...