我正在开发一个个人 Perl 模块,以构建一个基本的脚本框架并帮助我学习更多关于该语言的知识。我用 ExtUtils::ModuleMaker 创建了一个名为“AWSTools::Framework”的新模块通过命令行工具 modulemaker
.我正在尝试找出在开发过程中测试它的合适方法。
创建的目录结构包括以下内容:
./AWSTOOLS/Framework/lib/AWSTools/Framework.pm ./AWSTOOLS/Framework/t/001_load.t
The autogenerated 001_load.t
file looks like this:
# -*- 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....
如果我尝试运行 prove
在 ./AWSTOOLS/Framework
目录中,它也失败了。
问题是:在开发 Perl 模块时运行测试的正确方法是什么?
最佳答案
如果你想运行单个测试文件,你需要告诉 perl
在哪里可以找到你的模块,就像你对任何其他程序所做的那样。我用 blib自动添加正确的路径:
$ perl Makefile.PL; make; perl -Mblib t/some_test.t
您也可以使用prove
来做同样的事情。我不使用prove
,但你可以阅读它的文档来弄明白。 -b
开关应该可以做到这一点,但我遇到了它没有做正确事情的问题(可能只是我自己的白痴)。
关于perl - 在开发过程中测试 perl 模块的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783008/