zou*_*oul 21 scripting perl unit-testing module
我编写了一个小的Perl脚本,现在我想为它创建一个测试套件.我认为能够use将脚本作为模块,导入脚本中定义的subs并测试它们会很好.有没有办法让脚本既可以是独立的Perl脚本,也可以是Perl模块?(我不想将脚本拆分为单独的模块和"可执行文件",因为我打算将脚本作为单个文件分发.)
或者有更好的方法来测试脚本吗?
(我不想将脚本拆分为单独的模块和"可执行文件",因为我打算将脚本作为单个文件分发.)
大多数人在构建时将文件拼接在一起.App :: Ack on CPAN是一个可以像这样构建的例子.
如果您确实想要正确测试应用程序,则需要将功能放在模块中,然后编写一个Test :: More-based测试脚本来运行模块提供的功能.然后实际的脚本只是模块周围的一个薄包装器,通常类似于:
#!/usr/bin/env perl
use Your::Class;
Your::Class->new(args => \@ARGV)->run;
另请参见:MooseX :: Getopt.