每次更改Perl的make
文件时,是否必须运行make install
和.pm
?我正在做大量的测试,这变得很麻烦。
答案 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)
假设您在项目目录中,并且在其lib/
子目录中破解了文件。执行prove -l
以运行所有测试。这比在PERL5LIB
环境变量中使用绝对路径更容易。
答案 3 :(得分:-2)
据推测,您正在非lib位置编辑lib模块,而不是为每次修改破坏全局库 - 做一些明智的事情并使用PERL5LIB
更改perl使用的库路径,这将在内部附加到@INC
(use
搜索路径):
PERL5LIB=/home/user/code/perl/project/lib perl myapp.pl
如果你的程序不是pure-perl并且需要make系统,那么就没有办法做到这一点,但是在正常情况下,pure-perl(PP)并不需要make
。如果你这样做,在正常环境下运行perl将产生可预测和测试的结果,使用PERL5LIB
运行它将允许你来测试程序。