Perl测试::更多详细的进程

Perl测试::更多详细的进程,perl,Perl,我正在用test::More为一个非常冗长的过程编写一个Perl测试脚本。我试图找出一个好的实践,突出显示我正在测试的详细过程中的测试结果 use Test::More; ok( verbose_process(), 'Test A of a verbose process' ); ok( verbose_process(), 'Test B of a verbose process' ); ok( verbose_process(), 'Test C of a verbose process

我正在用
test::More
为一个非常冗长的过程编写一个Perl测试脚本。我试图找出一个好的实践,突出显示我正在测试的详细过程中的测试结果

use Test::More;

ok( verbose_process(), 'Test A of a verbose process' );
ok( verbose_process(), 'Test B of a verbose process' );
ok( verbose_process(), 'Test C of a verbose process' );

sub verbose_process{
   print "$_\n" for (0..100);
   return 1;
}
我正在想象一种方法,在脚本的底部询问
Test::More
一个测试摘要。这可能吗?还是我应该抑制我冗长的过程的输出

用于从流程中捕获STDOUT和STDERR。然后,您可以测试STDUT/STDER以确保它们包含预期的数据,或者如果您认为输出不重要,则丢弃它们。
use strict;
use warnings;
use Test::More;
use Capture::Tiny qw(capture);

my (undef, undef, $result_a) = capture { scalar verbose_process() };
ok($result_a, 'Test A of a verbose process');

my (undef, undef, $result_b) = capture { scalar verbose_process() };
ok($result_b, 'Test B of a verbose process');

my ($stdout_c, undef, $result_c) = capture { scalar verbose_process() };
ok($result_c, 'Test C of a verbose process');
like($stdout_c, qr/100\n\z/, '... and count to STDOUT ended correctly');

sub verbose_process {
   print "$_\n" for (0..100);
   return 1;
}

done_testing;

我想保留所有的长篇大论。我遇到的问题是,测试结果在整个流程输出中分布不多。通过
prove
运行测试脚本,它总是在最后打印摘要?尽管我个人认为,当运行测试脚本时,它应该只以TAP格式输出测试结果,而不输出其他内容。TAP格式允许诊断注释。Test::More提供了用于输出诊断的
diag
note
函数。很酷,我有点想知道是否任何冗长的内容都太冗长了。