Bug: retryOnFailedStep works only for the first test in the same run
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 58/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- javascript, playwright
- Domaine
- testing-qa
Piste de recherche
Commencez par le plugin retryFailedStep et son interaction avec l’utilitaire Playwright. Reproduisez les deux scénarios de l’issue et examinez comment l’état des retries est réinitialisé entre les tests, en particulier autour de store.autoRetries et recorder.retries. Le travail est terminé lorsque les étapes ayant échoué dans les deux scénarios reçoivent les retries configurés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I have the following test file:
Feature("github testing")
Scenario("test", async ({ I }) => {
await I.amOnPage('https://github.com');
await I.click('thistextdoesnotexist');
})
Scenario("test2", async ({ I }) => {
await I.amOnPage('https://github.com');
await I.click('thistextdoesnotexisttoo');
})
and I enabled the retryFailedStep plugin (this is the only plugin, also using playwright helper)
I noticed that the plugin doesn't retry the click step in test2
I patched two functions in the plugin (codeceptjs v4.0.3):
99 const when = err => {
100 if (!enableRetry) return
101 if (store.debugMode) return false
102 console.log("store.autoRetries", store.autoRetries); // <-- this is new
103 if (!store.autoRetries) return false
104 if (err && err.isTerminal) return false
105 if (err && err.message && (err.message.includes('ERR_ABORTED') || err.message.includes('frame was detached') || err.message.includes('Target page, context or browser has been closed'))) return false
106 return true
107 }
and
140 if (scenarioRetries > 0 && config.deferToScenarioRetries !== false) {
141 store.autoRetries = false
142 return
143 }
144
145 const hasManualRetries = recorder.retries.some(retry => retry !== config) // in the second test, recorder.retries.length === 3
146 console.log("hasManualRetries", hasManualRetries); // <-- this is new
147 if (hasManualRetries) {
148 store.autoRetries = false
149 return
150 }
151
I ran it and this is the output:
github testing --
hasManualRetries false
store.autoRetries true
store.autoRetries true
store.autoRetries true
store.autoRetries true
✖ test in 7886ms
hasManualRetries true
store.autoRetries false
store.autoRetries false
✖ test2 in 5760ms
Thanks!
- Langage dominant
- JavaScript
- Étoiles
- 4.2k
- Forks
- 756
- Merge moyen
- 2 j 10 h
- PR mergées (30 j)
- 18
Guide de contribution
Ouvrir 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 codeceptjs/CodeceptJS
-
stale
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
codeceptjs/CodeceptJS#5420 · 1 commentaire ·
-
stale
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
codeceptjs/CodeceptJS#5358 · 1 commentaire ·
-
stale
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
codeceptjs/CodeceptJS#4958 · 10 commentaires · 2 réactions ·
-
stale
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
codeceptjs/CodeceptJS#4778 · 3 commentaires ·
-
stale
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
codeceptjs/CodeceptJS#5618 · 1 commentaire ·
Toutes les issues de codeceptjs/CodeceptJS
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
area-deployment area-integrations triage:bot-seen
Difficulté 2/5 Une demi-journée Accessibilité débutants 86/100
-
Issue-Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
sugarlabs/musicblocks#8924 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
ArduPilot/ardupilot_wiki#8088 ·
-
[BUG] createTool tools cannot be registered with Mastra when exactOptionalPropertyTypes is enabled Ouvertecustomer-eng status: needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100