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 {}; 会暂时停止警告. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |