Perl 如何在ExtUtils::Makefile.PL中指定测试先决条件
Perl 如何在ExtUtils::Makefile.PL中指定测试先决条件,perl,perl-module,makemaker,Perl,Perl Module,Makemaker,PREREQ\u PM指定运行时的先决条件,但如何指定运行测试用例所需的模块 我是否应该为此使用BUILD\u REQUIRES?如果没有模块测试失败,那么我将其列在PREREQ\u PM中,无论测试或运行模块是否需要它 如果一些测试需要模块,但运行模块不需要模块,我会在测试运行时检测到这些模块,如果找不到,我会跳过测试(通过) 我认为ExtUtils::MakeMaker中没有任何字段可以满足您的需要。定义了模块如何将其先决条件传递给工具链。修订了版本2规范。测试阶段现在有自己的先决条件列表
PREREQ\u PM
指定运行时的先决条件,但如何指定运行测试用例所需的模块
我是否应该为此使用
BUILD\u REQUIRES
?如果没有模块测试失败,那么我将其列在PREREQ\u PM
中,无论测试或运行模块是否需要它
如果一些测试需要模块,但运行模块不需要模块,我会在测试运行时检测到这些模块,如果找不到,我会跳过测试(通过)
我认为ExtUtils::MakeMaker中没有任何字段可以满足您的需要。定义了模块如何将其先决条件传递给工具链。修订了版本2规范。测试
阶段现在有自己的先决条件列表
但MakeMaker尚未针对v2规范进行更新,而且可能永远不会更新。我所知道的唯一完全兼容的v2发行工具是(我推荐它的原因不止这些)
当从v2规范转换为时,它将测试
需求合并为构建_所需
因此,是的,如果您坚持使用MakeMaker,运行测试所需的任何模块都应该列在BUILD\u REQUIRES
中PREREQ\u PM
应仅包含安装模块后仍需要的模块。从6.64开始,有一个TEST\u REQUIRES
参数
use ExtUtils::MakeMaker 6.64;
WriteMakefile(
...,
TEST_REQUIRES => {
Test::More => 0.95,
},
...,
);
很好的解释。(这也是我一直以来做这件事的一个很好的理由。)@smonff,这个答案已经过时了。MakeMaker实际上在我编写它几个月后就得到了
TEST\u所需的支持。我会在有机会的时候更新它。@cjm我感谢你提到它:D!