Каков предполагаемый процесс разработки в Module :: Starter's manifest.t? - PullRequest
5 голосов
/ 20 мая 2011

Когда Module :: Starter инициализирует проект, он создает тест с именем manifest.t.

#!perl -T

use strict;
use warnings;
use Test::More;

unless ( $ENV{RELEASE_TESTING} ) {
    plan( skip_all => "Author tests not required for installation" );
}

eval "use Test::CheckManifest 0.9";
plan skip_all => "Test::CheckManifest 0.9 required" if $@;
ok_manifest();

Когда вы запускаете тесты с Build test, вот часть вывода:

t\00-load.t ....... ok
t\boilerplate.t ... ok
t\manifest.t ...... skipped: Author tests not required for installation

Я понимаю результат в узком смысле ($ENV{RELEASE_TESTING} не установлен, поэтому тесты пропускаются), но я не до конца понимаю общую картину. Каков предполагаемый процесс разработки? Я предполагаю, что это хорошая идея, чтобы запустить тесты, чтобы подтвердить, что манифест моего модуля является точным. Должен ли я установить эту переменную среды? Если да, то в какой момент в процессе разработки?

1 Ответ

4 голосов
/ 20 мая 2011

Многие дистрибутивы модулей имеют тесты, которые проверяют не то, работает ли код, а то, находится ли дистрибутив в состоянии, подходящем для выпуска. Такие вещи, как МАНИФЕСТ в актуальном состоянии, все ли функции документированы в POD и т. Д.

Чтобы сэкономить время, эти тесты могут быть написаны так, чтобы они пропускались, если не установлена ​​переменная среды RELEASE_TESTING. Это неформальный стандарт. Таким образом, эти тесты не запускаются, когда люди устанавливают модуль, и не запускаются, когда автор просто проверяет, не нарушило ли изменение кода что-либо.

Вы должны запустить RELEASE_TESTING=1 make test (или эквивалент Build) перед выпуском вашего dist. Если вы используете Dist :: Zilla (что я настоятельно рекомендую), вы можете запускать релиз-тесты с dzil test --release. Этот флаг также устанавливается автоматически с помощью плагина TestRelease , который вы обязательно должны использовать, если используете dzil.

Другими переменными среды, обычно используемыми для контроля тестирования, являются AUTOMATED_TESTING и AUTHOR_TESTING. AUTOMATED_TESTING устанавливается CPAN-тестерами , выполняющими автоматические тесты дыма.

...