Perl TAP::Harness::JUnit で複数のテストスクリプトを使用して Jenkins を使用しています。1 つのテストスクリプトが完了する前に、Jenkins をコンソールにフラッシュさせることができません。テストスイート全体をバッファリングし、完了したら一度にフラッシュします。次のようなインスタンスを取得します。
- 11:56:19 1..2
- 11:56:19 OK 1 - テスト 1
- 11:56:19 実際の時間: 11:55:59 : 現在 20 秒間スリープ中...
- 11:56:19 実際の時間: 11:56:19
- 11:56:19 OK 2 - テスト 2
私はこれに 2 週間を費やし、すべての通常の解決策を認識していますが、どれも機能していないようです。perl TAP::Harness::JUnitを設定merge => 1
しましたが、STDOUT と STDERR が絡み合っていることはわかっていますが、あらゆる方法でフラッシュを試みましたが、Jenkins コンソール出力では何も機能しません。
私のマシンのコマンドラインで同じハーネスを試すと、すべてが即座にフラッシュされます。、、、、ファイルに出力しようとstdbuf -i0 -o0 -e0
しました。何も機能しませんstdbuf -oL -eL
$|=1
autoflush STDOUT 1
CMD 1>console.log 2>&1
タイムスタンプは無意味であるため、特定のテストのタイムスタンプとその時々の CPU への高い負荷を関連付けることができないため、これはパフォーマンス メトリックを実行するときに厄介です。ただし、最も厄介な意味は、テストスクリプトの途中でテストがハングまたはクラッシュした場合、出力が出力されないため、テストがクラッシュした理由がわからないことです。