Как указать предварительные условия теста в ExtUtils::MakeMaker Makefile.PL

PREREQ_PM определяет предварительные условия выполнения, но как указать, какие модули требуются для выполнения тестовых случаев?

Должен ли я использовать BUILD_REQUIRES за это?

3 ответа

Начиная с ExtUtils:: MakeMaker 6.64, существует TEST_REQUIRES параметр.

use ExtUtils::MakeMaker 6.64;

WriteMakefile(
    ...,
    TEST_REQUIRES => {
        Test::More => 0.95,
        },
    ...,
    );

CPAN::Meta::Spec определяет, как модули передают свои предварительные условия в цепочку инструментов. Спецификация версии 2 изменила способ перечисления предварительных условий. test Фаза теперь имеет собственный список предпосылок.

Но MakeMaker не был обновлен для спецификации v2, и, вероятно, никогда не будет. Единственный известный мне дистрибутив v2 - это Dist:: Zilla (и я рекомендую его по нескольким причинам).

Когда CPAN::Meta::Converter конвертирует из спецификации v2 в v1.4, он объединяет test требования в build_requires,

Так что да, если вы придерживаетесь MakeMaker, любые модули, необходимые для запуска тестов, должны быть перечислены в BUILD_REQUIRES, PREREQ_PM должен содержать только те модули, которые все еще необходимы после установки модуля.

Если тесты не пройдут без модуля, я перечислю его в PREREQ_PM независимо от того, нужен ли он для тестирования или для запуска модуля.

Если мне нужны модули для некоторых тестов, но они не нужны для запуска модуля, я обнаруживаю их при запуске тестов и пропускаю тесты (с ПРОПУСКОМ), если не могу их найти.

Я не думаю, что в ExtUtils::MakeMaker есть поле для того, что вы хотите.

Другие вопросы по тегам