0

我是 Perl 新手,我正在尝试为我拥有的 Perl 脚本生成覆盖率报告。我按照此处提到的步骤安装 Devel-Cover https://code.activestate.com/ppm/Devel-Cover/并运行

perl -MDevel::Cover script

我得到了一些报道信息和那条消息

    Pod coverage is unavailable.  Please install Pod::Coverage from CPAN.

然后运行命令cover来生成报告,我让cover: Command not found.Tringcpan install Pod::Coverage按照输出的说明运行,但它失败了。我不确定我在这里缺少什么。我也尝试使用 Devel::Coverage

 perl -d:Coverage script

但我得到了那个输出

Can't locate Devel/Coverage.pm in @INC (you may need to install the Devel::Coverage module) (@INC contains: /spiratech/tools/perllib /home/mmaher/.cache/activestate/02540130/lib/perl5/site_perl/5.32.0/x86_64-linux /home/mmaher/.cache/activestate/02540130/lib/perl5/site_perl/5.32.0 /home/mmaher/.cache/activestate/02540130/lib/perl5/5.32.0/x86_64-linux /home/mmaher/.cache/activestate/02540130/lib/perl5/5.32.0).
BEGIN failed--compilation aborted.
%!s(<nil>)

而且我找不到任何有关如何安装它的说明。我正在使用 Perl v5.32.0

4

1 回答 1

2

Zeroth,ActiveState 的 PPM 是旧东西。他们有一个新的状态工具来处理所有这些。请注意,这是为了使用他们的 Perl 包。如果您不使用 ActiveState 的 perl,请不要使用他们的说明。

首先,如果您想检查所有公共子例程是否都已记录在案,则只需要 Pod::Coverage。这是一个可选功能。

其次,没有install命令cpan。只需列出您想要的模块或使用命令行选项。如果没有选项,-i则假定 (for install):

$ cpan Pod::Coverage
$ cpan -i Pod::Coverage

第三,-d调试开关假定您正在加载Devel命名空间下的模块。这就是为什么-d:Coverage寻找Devel::Coverage,然后找不到。

要加载您喜欢的任何模块,您可以使用-M开关。这需要整个模块名称:

$ perl -MPod::Coverage

最后,一旦您Devel::Cover安装coverPATH.

于 2022-01-07T23:08:18.760 回答