【发布时间】:2010-08-31 01:06:57
【问题描述】:
我运行了这个测试脚本:
use strict;
use warnings;
use Test::More tests => 3;
use Carp;
ok(1<2);
pass();
fail();
croak "example";
使用命令行prove -MCarp=verbose -v foo.pl,出现如下错误:
Subroutine App::Prove::verbose redefined at /opt/ActivePerl-5.12/lib/App/Prove.pm line 407
App::Prove::_load_extension('App::Prove=HASH(0x683718)', 'Carp=verbose') called at /opt/ActivePerl-5.12/lib/App/Prove.pm line 419
App::Prove::_load_extensions('App::Prove=HASH(0x683718)', 'ARRAY(0x683850)') called at /opt/ActivePerl-5.12/lib/App/Prove.pm line 481
App::Prove::run('App::Prove=HASH(0x683718)') called at /opt/ActivePerl-5.12/bin/prove line 11
Undefined subroutine &Carp::verbose called at /opt/ActivePerl-5.12/lib/App/Prove.pm line 484.
如果我使用perl -MCarp=verbose foo.pl 运行它,就没有问题。是什么导致prove 拒绝冗长的鲤鱼?当他们 croak 而不将 croak 全局替换为 confess 时,如何从我的测试中获得完整的调用堆栈?
【问题讨论】: