【发布时间】:2010-12-29 13:40:53
【问题描述】:
我对处理我的 Perl 脚本的代码覆盖率有一个独特的要求。
我编写了一些 Perl 脚本,这些脚本又使用了一些 Perl 模块。我的要求是使用它们支持的不同选项运行这些 Perl 脚本,并评估 Perl 脚本和 Perl 模块的代码覆盖率。
所以我正在使用来自 CPAN 的 Devel::Cover、Module::Build 和 Test::More。如果我直接在测试脚本中调用 Perl 模块中的函数,这一切都很好。但如果我直接调用脚本,它就不起作用(在这种情况下,我不会生成 Perl 模块和脚本的代码覆盖率)。
这是我使用 Test::More 的示例测试脚本:
use strict;
use warnings;
use Test::More;
BEGIN { plan tests => 1 }
ok(sub {
my @args = ("ex4200fw","-query-fw","-i","192.168.168.1");
#print "# Executing @args \n";
`@args`;
my $rc = $? >> 8;
#print "# Return code: $rc \n";
$rc == 1
}->(),"Query Juniper EX4200 FW, incorrect IP address.\n");
这里ex4200fw(在路径中)是我编写的Perl脚本,它又调用依赖模块updates.pm。
- 我们有什么工具可以满足这个要求吗?
- 运行 Perl 脚本并获取脚本及其相关模块的代码覆盖率?
- 我们可以使用上面的 CPAN 模块完成同样的任务吗?
任何示例脚本对我来说都非常有用。
【问题讨论】:
标签: perl code-coverage