如何测试独立的Perl脚本?

zou*_*oul 21 scripting perl unit-testing module

我编写了一个小的Perl脚本,现在我想为它创建一个测试套件.我认为能够use将脚本作为模块,导入脚本中定义的subs并测试它们会很好.有没有办法让脚本既可以是独立的Perl脚本,也可以是Perl模块?(我不想将脚本拆分为单独的模块和"可执行文件",因为我打算将脚本作为单个文件分发.)

或者有更好的方法来测试脚本吗?

inn*_*naM 32

由于布莱恩现在似乎已经睡着了,所以这里指的是他所谓的modulinos.这基本上是构建脚本的配方,这些脚本就像模块或模块一样可以像脚本一样运行.听起来和你想要的完全一样.

掌握Perl绝对是一本值得阅读(和购买)的书.

  • 没有睡着,只是工作:)将脚本作为模块的优点是你可以把它分成几块进行单元测试.否则,您只能运行整个脚本. (3认同)

jro*_*way 6

(我不想将脚本拆分为单独的模块和"可执行文件",因为我打算将脚本作为单个文件分发.)

大多数人在构建时将文件拼接在一起.App :: Ack on CPAN是一个可以像这样构建的例子.

如果您确实想要正确测试应用程序,则需要将功能放在模块中,然后编写一个Test :: More-based测试脚本来运行模块提供的功能.然后实际的脚本只是模块周围的一个薄包装器,通常类似于:

#!/usr/bin/env perl
use Your::Class;
Your::Class->new(args => \@ARGV)->run;
Run Code Online (Sandbox Code Playgroud)

另请参见:MooseX :: Getopt.