perl – 在TAP中发出警告

前端之家收集整理的这篇文章主要介绍了perl – 在TAP中发出警告前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的代码测试了一个糟糕的API调用,幸运的是代码会导致模块本身发出警告.但是当我测试失败的API调用时,我希望在TAP中看不到警告.

t/01-pass.t .............. ok
t/02-fail.t .............. ok
t/03-noversion.t ......... ok
t/04-no-file.t ........... ok
Use of uninitialized value $file in concatenation (.) or string at /home/xenoterracide/projects/Test-Version/lib/Test/Version.pm line 29.
t/05-file-not-defined.t .. ok
# unsorted oks: 001
t/06-all.t ............... ok
All tests successful.
Files=6,Tests=37,1 wallclock secs ( 0.04 usr  0.02 sys +  0.35 cusr  0.04 csys =  0.45 cpu)
Result: PASS

这是实际的代码

#!/usr/bin/perl
use 5.006;
use strict;
use warnings;
use Test::Tester tests => 7;
use Test::Version qw( version_ok );

check_test(
    sub {
        version_ok; # correct call version_ok( $file )
    },{
        ok => 0,name => 'check version in ',diag => 'FILE_NOT_DEFINED',},'$file not defined'
);

有没有办法压制警告并防止它在TAP中结束(在原始模块中没有警告之外).

解决方法

local $SIG{__WARN__} = sub {};

会暂时停止警告.

猜你在找的Perl相关文章