我是否必须运行make / make install来测试Perl分发文件的每个更改?

时间:2010-01-22 16:20:40

标签: perl testing

每次更改Perl的make文件时,是否必须运行make install.pm?我正在做大量的测试,这变得很麻烦。

4 个答案:

答案 0 :(得分:5)

您无需安装模块进行测试。

如果我在我的分发目录中进行测试,我只使用test目标:

 % make test

或者,如果我正在使用Module :: Build:

 % ./Build test

由于make是一个依赖关系管理工具,它还会处理它需要执行的任何其他步骤,以便它可以运行test目标。您不需要单独运行每个目标。 Module :: Build做同样的事情。

如果我想测试单个文件,我将make命令与perl的调用结合起来,blib也使用@INC模块设置正确的 % make; perl -Mblib t/single_test.t

prove

有些人喜欢使用{{1}}来做同样的事情。无论我使用哪种方法,我都可能使用箭头键移回上一个命令行来重新运行它。我几乎没有打字。

答案 1 :(得分:3)

这取决于模块设置,但在我使用的标准MakeMaker下,如果任何文件被修改,“make test”运行“make”,因此在进行模块内开发时,“make test”是你需要的唯一命令直到你完成。

答案 2 :(得分:1)

埃文卡罗尔基本上对了。为了扩展他的答案:使用Perl附带的测试工具来加强工作流程。

假设您在项目目录中,并且在其lib/子目录中破解了文件。执行prove -l以运行所有测试。这比在PERL5LIB环境变量中使用绝对路径更容易。

答案 3 :(得分:-2)

据推测,您正在非lib位置编辑lib模块,而不是为每次修改破坏全局库 - 做一些明智的事情并使用PERL5LIB更改perl使用的库路径,这将在内部附加到@INCuse搜索路径):

PERL5LIB=/home/user/code/perl/project/lib perl myapp.pl

如果你的程序不是pure-perl并且需要make系统,那么就没有办法做到这一点,但是在正常情况下,pure-perl(PP)并不需要make。如果你这样做,在正常环境下运行perl将产生可预测和测试的结果,使用PERL5LIB运行它将允许来测试程序。