Итак, я сделал несколько модулей для собственного использования, и мне интересно, есть ли документация о том, как писать тесты для модулей Perl, используя Module :: Build.
Конкретная проблема, с которой я сталкиваюсь, состоит в том, что у меня есть три модуля 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 () не включает каждый файл .pm в lib/HomeBrew
. Я бы предпочел хранить все файлы модуля HomeBrew в каталоге .../HomeBrew
, но нужно ли разделять каждый из них на разные каталоги?
Как мне выполнить тесты для каждой подпрограммы, чтобы Module :: Build знал, как тестировать весь модуль или только одну его часть?
прямо сейчас, когда я говорю ./Build test
, он тестирует все три модуля одновременно (а ./Build install
устанавливает все три сразу).