Define merge semantics for `results.errors`

オープン
#93 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
typescript
領域
tooling

調査の方向性

Start with the spec text that #88 adds for results.errors, then read src/merge.ts in ctrf-cli and in ctrf-js to see how the first shard's fields are kept. The issue first asks for a spec rule (concatenate every input's errors, in input order, with no de-duplication), which needs maintainer agreement before any code. Done means the spec wording is agreed and both merge functions keep every shard's errors, with tests for multi-shard input.

索引モデルが issue の本文から書いたものです。

説明

Follow-up to #65, from this comment. Builds on #88, which adds results.errors: [{message, trace, extra}].

Problem

Sharded runs are routinely merged into one CTRF document. Merging is where run-level errors get lost. #88 says nothing about merging. Current CTRF tooling would silently drop errors from every shard but the first:

  • ctrf merge in ctrf-cli keeps extra and environment from the first shard only.
  • ctrf-js merge() keeps the first value for each key and rebuilds the result without any results.errors handling.

So aAshard that failed in global teardown would produce a merged report with no error and, if all its tests passed, a green verdict.

Precedent

Tools that merge run-level errors concatenate them:

De-duplication is also risky: the same message from two shards (for example, "Database cleanup failed") might mean two separate failures.

Proposal

Add to the spec:

When merging CTRF documents (for example, shards of one run), results.errors SHOULD be the concatenation of every input document's results.errors, in input order, without de-duplication. A merging tool MAY record the source document or shard in each entry's extra.

Then update ctrf merge and ctrf-js merge() to follow it.

Related

If an optional run outcome is added (separate issue), its merge rule should follow Playwright's worst-first ordering.

主要言語
言語のデータがありません
スター
103
フォーク
4
平均マージ
1時間 3分
マージ済み PR(30日)
2

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ctrf-io/ctrf のほかの issue

ctrf-io/ctrf の issue をすべて見る

似ている issue

DevTools の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。