这是测试的输出。
prove -lv t/02-fail.t
t/02-fail.t ..
not ok 1
1..1
# Failed test at t/02-fail.t line 15.
# STDOUT is:
# ok 1 - corpus/fail/FooBar.pm version 1.0.1 is valid
# not ok 2 - corpus/fail/FooBarBaz.pm version is valid
#
# not:
# ok 1 - corpus/fail/FooBar.pm version 1.0.1 is valid
#
# not ok 2 - corpus/fail/FooBarBaz.pm version is valid
#
# as expected
# STDERR is:
# # Failed test 'corpus/fail/FooBarBaz.pm version is valid'
# # at /home/xenoterracide/projects/Test-HasValidVersion/lib/Test/HasValidVersion.pm line 60.
# # corpus/fail/FooBarBaz.pm VERSION is not a valid verion
#
# not:
#
# as expected
Failed 1/1 subtests
Test Summary Report
-------------------
t/02-fail.t (Wstat: 0 Tests: 1 Failed: 1)
Failed test: 1
Files=1, Tests=1, 0 wallclock secs ( 0.02 usr 0.01 sys + 0.04 cusr 0.01 csys = 0.08 CPU)
Result: FAIL
和测试本身
#!/usr/bin/perl
use 5.006;
use strict;
use warnings;
use Test::Builder::Tester;
use Test::More;
use Test::HasValidVersion qw( version_all_ok );
test_out( 'ok 1 - corpus/fail/FooBar.pm version 1.0.1 is valid',
'not ok 2 - corpus/fail/FooBarBaz.pm version is valid'
);
version_all_ok( 'corpus/fail' );
test_test;
done_testing;
(注意:这里有一个指向github repository测试代码的链接有一些不同但是大致相同。模块没有任何不同。如果你克隆了repo,请确保你看看提交daaab6a7c452958399f74150406915657f2cfa33作为主分支正在更新)
我不确定为什么这会失败,似乎注入了docs没有提到的整行。
有人可以帮我纠正代码以使其通过吗?
答案 0 :(得分:0)
您是否尝试将Test :: More和Test :: Builder :: Tester升级到最新版本?在这里使用perl-5.10.1和perl-5.14.0-RC3以及两者的最新版本,我无法复制你的错误,使用git repo的结帐(并修复回购中的行的明显问题)被扭转了。)
答案 1 :(得分:0)
所以我需要做的是在代码中添加test_fail(+4)
。最后,我切换到Test::Tester
,不必处理空白问题。
#!/usr/bin/perl
use 5.006;
use strict;
use warnings;
use Test::Builder::Tester;
use Test::More;
use Test::HasValidVersion qw( version_ok );
test_out(
'ok 1 - VERSION 1.0.1 in corpus/fail/FooBar.pm is valid',
'not ok 2 - validate VERSION in corpus/fail/FooBarBaz.pm',
);
test_fail(+4);
test_diag('VERSION in corpus/fail/FooBarBaz.pm is not a valid version');
version_ok( 'corpus/fail/FooBar.pm' );
version_ok( 'corpus/fail/FooBarBaz.pm' );
# version_all_ok('corpus/fail');
test_test;
done_testing;