PREREQ_PM
指定运行时先决条件,但是如何指定运行测试用例需要哪些模块?
我应该使用BUILD_REQUIRES
吗?
答案 0 :(得分:4)
从ExtUtils::MakeMaker 6.64开始,有一个TEST_REQUIRES
参数。
use ExtUtils::MakeMaker 6.64;
WriteMakefile(
...,
TEST_REQUIRES => {
Test::More => 0.95,
},
...,
);
答案 1 :(得分:3)
CPAN::Meta::Spec定义了模块如何将其先决条件传达给工具链。版本2规范修订了the way prerequisites are listed。 test
阶段现在有自己的先决条件列表。
但MakeMaker尚未针对v2规范进行更新,可能永远不会更新。我所知道的唯一完全兼容的v2分发工具是Dist::Zilla(我推荐它的原因不止于此)。
当CPAN::Meta::Converter从v2规范转换为v1.4时,它会将test
要求合并到build_requires
。
所以是的,如果你坚持使用MakeMaker,那么运行测试所需的任何模块都应列在BUILD_REQUIRES
中。 {/ 1}}应仅包含模块安装后仍需要的模块。
答案 2 :(得分:1)
如果测试在没有模块的情况下失败,那么无论是测试还是运行模块,我都会在PREREQ_PM
中列出它。
如果我需要模块进行某些测试,但不需要运行模块,我会在测试运行时检测到这些模块,如果找不到,我会跳过测试(通过PASS)。
我认为ExtUtils :: MakeMaker中没有任何字段可供您使用。