JSONフォーマッターのようにtest-run-finished
のみをフックするカスタムフォーマッターは、並列化すると意図したとおりに機能しますが、 test-(step|case)-started
ような以前のイベントを使用して順序付けられたフォーマッターでは、出力が順番どおりにログアウトされ、出力ドキュメント構造が無効になります。 それに対処するために計画されているものはありますか? ワーカーベースごとに出力をバッファリングし、完了したらマスターに一度にログに記録することができますか?
各イベントには、バッファリングではなく、前のイベントにリンクできる十分な情報が含まれている必要があると思います。
'end'イベントのみがフックされた場合、テストの出力の開始を見逃すため、これがどのように機能するかはわかりません。 かなりのフォーマッターとIntelliJベースのエディターのテストランナーを例として使用するには、次のように機能します。
Scenario: Foo
、IntelliJの場合-TeamCity形式のコメント#teamcity[testStarted]
pass/fail
要約または##teamcity[testFinished]
ログに記録しますテストがログに記録するものの前に開始ステートメントがあり、後で終了ステートメントがあり、他のテストがそれと並行して何かをログに記録しないようにするため、順序は重要です。そうしないと、どの出力がどのテストに属するかが混同されます。 各出力は分離され、アトミック操作でマスターにログオンするため、バッファリングはそれを処理しているように見えます。
isParallel
オプションをカスタムフォーマッターに渡して、テストケース開始/テストステップイベントでの出力が混乱するため、テストケース終了イベントでのみ出力する必要があることを通知できます。
この問題についてもっと議論する必要があります。 現在、フォーマッタを使用すると、端末への書き込み中にI / Oの競合が発生し、キュウリランナーがクラッシュするリスクがあります。 プログレスバーフォーマッターは、バーを動かして最後に要約を報告するだけであれば、パラレルランナーにとって理想的です。
この機能がとても必要です!!!
こんにちは! アリュールレポーターと並行してキュウリjsを実行する機会はありますか? cucumber-js --parallel 2 -t @debug --format reporter.js:./ dummy.txtで実行しようとすると、TypeErrorが発生しました:undefinedのプロパティ 'sourceLocation'を読み取れません
前もって感謝します!
@ yevgen-getaloと同じ問題がここにあります。
v7.0.0として終了すると、上記の新しいメッセージプロトコルが使用されます。このプロトコルでは、 $THING_started
$THING_finished
イベントとeventDataCollector.query
オブジェクト( @cucumber/query
インスタンス)は、これの一部に役立ちます。
最も参考になるコメント
この機能がとても必要です!!!