Add an optional run outcome to `results`
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 18/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- Active
- Stack technique
- json
- Domaine
- tooling
Piste de recherche
This is an open design question about the CTRF schema, not a code change, and the payload names no repository files. Read #65 and #88 first, along with the linked precedent for Jest, TRX, Cucumber, node:test and Playwright. Done means the maintainers settle the shape (boolean or enum), the consistency rules and the merge rule, and only then is a schema change proposed.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Follow-up to #65, from this comment. #88 adds results.errors and notes that "overall-run-outcome questions remain open." This issue is for that question and should not block 0.3.0.
Problem
With results.errors, a report can describe a failed run whose tests all passed, but it still doesn't carry a verdict. Each consumer has to derive one from summary.failed and results.errors, and the framework's own verdict is lost. Playwright, for example, distinguishes failed, timedout, and interrupted.
Precedent
When a format keeps errors out of the test list and still wants the report to carry a verdict, it adds a run-level outcome:
- Jest:
successis false whennumRuntimeErrorTestSuites > 0. - VSTest TRX:
ResultSummary/@outcome="Failed"even when every test passed, with the run-level counters left alone. - Cucumber Messages:
TestRunFinished.successis required, along with anexceptionfield. - node:test:
test:summary.successis set false for uncaught errors outside tests, without changingfailed(harness.js). - pytest-json-report: top-level
exitcode. - Datadog Test Optimization: session status, which its Playwright integration takes from Playwright's run result.
The exceptions are xUnit v2 and Playwright JSON. Both have an error list but no outcome, which is the shape CTRF 0.3.0 is heading toward.
#65 suggested results.environment.healthy as a stand-in, but no consumer I checked reads it. ctrf-io/github-test-reporter gates only on summary.failed.
Questions to settle
- Shape. A boolean like Jest's and Cucumber's
success, or a status enum? An enum could reuse CTRF's test statuses, or add run-specific values such astimedoutandinterrupted. ArawStatus-style field could keep the framework's own value, asresults.tests[].rawStatusdoes for tests. - Consistency. Should a producer that sets a failing outcome also emit a
results.errorsentry (see the "dependable signal" issue)? Should a passing outcome be allowed alongside a non-emptyresults.errorsorsummary.failed > 0? - Merging. Playwright's
merge-reportsmerges run status worst-first: failed, then timedout, then interrupted, then passed. CTRF's merge rule could do the same. - Consumers. When present, consumers like github-test-reporter could gate on the outcome directly, instead of deriving one.
- Langage dominant
- Aucune donnée de langage
- Étoiles
- 103
- Forks
- 4
- Merge moyen
- 1 h 3 min
- PR mergées (30 j)
- 2
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ctrf-io/ctrf
-
Also Mention UUID version 8Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
ctrf-io/ctrf#59 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
Les mainteneurs répondent en général sous 1 jour
-
CTRF 0.3.0 preparationOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
Les mainteneurs répondent en général sous 1 jour
-
Proposal: Add optional `threadId` to `retryAttempts` entriesPeut-être pris @alexshamrai l’a pris il y a 12 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
ctrf-io/ctrf#74 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de ctrf-io/ctrf
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
eliasstravik/herdr-projects#787 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
code-yeongyu/oh-my-openagent#12784 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
`jiti/register`: `import.meta.resolve()` throws `ReferenceError: jitiESMResolve is not defined`Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 71/100
btclib-org/btclib#2964 ·
Les mainteneurs répondent en général sous 1 jour