所以我制作了一些模块供我自己使用,我想知道是否有任何关于如何使用 Module::Build 为 perl 模块编写测试的文档。
我遇到的具体问题是我有三个模块,HomeBrew::IO
、HomeBrew::Stats
和HomeBrew::Bio
,我不知道如何按照文件的排列方式分别构建或测试它们。
这三个模块文件位于同一个目录.../HomeBrew/lib/HomeBrew/
中,并且我在目录中有三个 Build.PL 文件.../HomeBrew/
(命名IO-Build.PL
等),三个 .t 文件位于.../HomeBrew/t/
(命名HomeBrew-IO.t
等)中。
似乎发生的是三个 Build.PL 文件似乎不知道它们一次只应该构建一个模块。我将向您展示其中之一:
#!/usr/bin/perl
use warnings;
use strict;
use Module::Build;
my $build = Module::Build->new
(
module_name => "HomeBrew::IO",
dist_author => "George Locke",
dist_abstract => "Various utilities for reading files",
build_requires => {
'Test::More' => '0.10',
'POSIX' => '0', # for tmpname()
'Test::Exception' => '0', # to test that checkExist dies
},
);
$build->create_build_script();
(我可能应该使用 File::Temp 而不是 POSIX,但这仅用于测试,所以它不是高优先级)
将来,我想将我的测试脚本更改为每个子例程都有一个,这样我就可以Build test checkExist
一次只检查一个子程序。
所以,
如何确保 create_build_script() 不包含
lib/HomeBrew
. 我更愿意将所有 HomeBrew 模块文件保存在.../HomeBrew
目录中,但我是否必须将每个文件分开到不同的目录中?我如何为每个子例程进行测试,以便 Module::Build 知道如何测试整个模块或仅测试其中的一部分?
现在,当我说它./Build test
同时测试所有三个模块时(并一次./Build install
安装所有三个模块)。