TAP::Harness を使用してテストを実行しています。Linux システムでコマンド ラインからテストを実行すると、実行時に STDOUT でテスト結果が得られますが、ファイルへの出力と STDOUT を使用してキャプチャしようとすると、パールハーネス.pl | tee out.tap 結果はバッファリングされ、最後にのみ表示されます。ファイル ハンドルを new に渡そうとしましたが、結果はファイルに書き込まれる前にまだバッファリングされています。出力をバッファリングしない方法はありますか?長期実行スイートであり、テストの実行中に結果を確認し、出力をキャプチャしたいと考えています。
TAP::Harness バージョン 3.22 および perl バージョン 5.8.8
これがサンプルコードのharness.plです
#!/usr/bin/perl
use strict;
use warnings;
use TAP::Harness;
$|++;
my @tests = ('del.t',);
my $harness = TAP::Harness->new( {
verbosity => 1,
} );
$harness->runtests(@tests);
およびテスト del.t
use Test::More qw /no_plan/;
$|++;
my $count =1;
for (1 ..20 ) {
ok ( $count ++ == $_, "Pass $_");
sleep 1 if ( $count % 5 == 0 ) ;
}