加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 在TAP中发出警告

发布时间:2020-12-15 23:23:32 所属栏目:大数据 来源:网络整理
导读:我的代码测试了一个糟糕的API调用,幸运的是代码会导致模块本身发出警告.但是当我测试失败的API调用时,我希望在TAP中看不到警告. t/01-pass.t .............. okt/02-fail.t .............. okt/03-noversion.t ......... okt/04-no-file.t ........... okUse
我的代码测试了一个糟糕的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 {};

会暂时停止警告.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读