我想编写一个 t/00-check-deps.t
模块来查找 MyModule.pm
中的所有依赖项,并确保它们存在于 发布前的 Makefile.PL
。
这样,当我在分发到 CPAN 之前进行 make test
时,我就会知道在发布之前没有忘记任何内容。我看过ExtUtils套件,但我还没有看到任何明显的东西已经解决了这个问题。这似乎是人们想要解决的一个常见问题。
你会怎么做?
最佳答案
这是我的做法。感谢@ikegami scandeps hint :
find lib -name '*.pm' | xargs scandeps.pl -R | \
perl -MJSON -le '
undef $/;
%d=eval(<STDIN>);
$j=JSON::from_json(`cat MYMETA.json`);
foreach (keys(%d)) {
warn "Missing: $_ => $d{$_}\n" if !defined($j->{prereqs}{runtime}{requires}{$_})
}
'
打印:
Missing: Carp => 1.42
Missing: PDL::Constants => 0.02
Missing: Exporter => 5.72
Missing: constant => 1.33
Missing: PDL => 2.080
Missing: PDL::LinearAlgebra => 0.35
Missing: PDL::Ops => undef
关于perl - 如何测试 Perl 模块以检查 Makefile.PL 是否声明了所有依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73254321/