Каков предполагаемый процесс разработки в модуле ::Starter’s manifest.t?

#perl #testing #module #manifest

#perl #тестирование #модуль #манифест

Вопрос:

Когда 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 , вот часть выходных данных:

 t00-load.t ....... ok
tboilerplate.t ... ok
tmanifest.t ...... skipped: Author tests not required for installation
  

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

Ответ №1:

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

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

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

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

Комментарии:

1. Спасибо за четкое объяснение и предложение попробовать Dist::Zilla.