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

标签 perl testing module

我正在开发一个个人 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/

相关文章:

performance - 第一次调用 Julia 很慢

java - 如何在另一个应用程序模块中使用项目源代码

regex - 在 Perl 正则表达式中使用包含特殊字符的变量

perl - 我可以确定是否正在从终端运行 Perl 脚本吗?

regex - 带组的 Perl 正则表达式替换

apache - 如何使 apache 变慢且不可靠?

perl - 如何在 Perl 中创建目录?

c# - 如何监控每个http请求?

testing - 在测试中访问参数

module - Prestashop 1.6 - 后台 - Smarty - 创建一个制作简单空白页面的模块?