我编写了一个小的Perl脚本,现在我想为它创建一个测试套件.我认为能够use
将脚本作为模块,导入脚本中定义的subs并测试它们会很好.有没有办法让脚本既可以是独立的Perl脚本,也可以是Perl模块?(我不想将脚本拆分为单独的模块和"可执行文件",因为我打算将脚本作为单个文件分发.)
或者有更好的方法来测试脚本吗?
由于布莱恩现在似乎已经睡着了,所以这里指的是他所谓的modulinos.这基本上是构建脚本的配方,这些脚本就像模块或模块一样可以像脚本一样运行.听起来和你想要的完全一样.
掌握Perl绝对是一本值得阅读(和购买)的书.
(我不想将脚本拆分为单独的模块和"可执行文件",因为我打算将脚本作为单个文件分发.)
大多数人在构建时将文件拼接在一起.App :: Ack on CPAN是一个可以像这样构建的例子.
如果您确实想要正确测试应用程序,则需要将功能放在模块中,然后编写一个Test :: More-based测试脚本来运行模块提供的功能.然后实际的脚本只是模块周围的一个薄包装器,通常类似于:
#!/usr/bin/env perl use Your::Class; Your::Class->new(args => \@ARGV)->run;
另请参见:MooseX :: Getopt.