[Bug]: CLI numeric options are not validated: `--timeout 30s` runs with a 30ms timeout, `--timeout abc` / `--retries abc` silently disable timeouts and retries
I maintainer di solito rispondono entro 1 giorno
@CloneOfAlex ci sta già lavorando.
Dal 19/10/2026.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, playwright, typescript
Direzione di ricerca
Inizia in packages/playwright/src/cli/testActions.ts, in corrispondenza di overridesFromOptions(), e verifica come vengono analizzate le cinque opzioni numeriche CLI; confronta il risultato con la validazione in configLoader.ts. Aggiungi test mirati per valori malformati e validi, quindi eseguili. Il lavoro è completato quando i valori non validi producono un chiaro messaggio d’uso e gli interi non negativi validi continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Version
1.64.1 (also reproduces on main at cdcef0b)
Steps to reproduce
No browser needed. Fresh project with npm i -D @playwright/[email protected] and two files:
// tests/a.spec.ts
import { test } from '@playwright/test';
test('waits 200ms', async () => { await new Promise(f => setTimeout(f, 200)); });
// tests/d.spec.ts
import { test } from '@playwright/test';
test('reports config', async ({}, testInfo) => {
console.log('timeout=' + testInfo.timeout + ' retries=' + testInfo.project.retries);
});
npx playwright test tests/a.spec.ts --timeout 30snpx playwright test tests/d.spec.ts --timeout abc --retries abc
Expected behavior
Both commands fail fast with a usage error, the same way invalid config-file values are rejected (config.timeout must be a non-negative number). For example: --timeout "30s" must be a non-negative integer.
Actual behavior
- The test fails with
Test timeout of 30ms exceeded.because"30s"is read as 30 ms.--timeout 1mlikewise becomes a 1 ms timeout. - The run prints
timeout=null retries=nulland passes with exit code 0. The run has no test timeout and no retries, with no warning.
The same applies to --global-timeout, --repeat-each and --max-failures.
Additional context
Root cause: overridesFromOptions() in packages/playwright/src/cli/testActions.ts uses parseInt(value, 10) for --timeout, --global-timeout, --retries, --repeat-each and --max-failures. parseInt('30s') is 30, and parseInt('abc') is NaN. NaN is serialized as null over IPC, and !slot.timeout then means "no timeout". Values from the config file are validated in configLoader.ts, but CLI overrides are not.
I have a fix with tests ready: a strict non-negative-integer check that throws a clear usage error. Happy to open a PR if that approach works for you.
Environment
System:
OS: Linux 6.18 Ubuntu 24.04.5 LTS (Noble Numbat)
CPU: (2) x64 Intel(R) Xeon(R) Processor @ 2.10GHz
Memory: 7.84 GB
Container: Yes
Binaries:
Node: 22.22.0
npm: 10.9.4
npmPackages:
@playwright/test: 1.64.1
- Lingua principale
- TypeScript
- Stelle
- 98k
- Fork
- 6.6k
- Merge medio
- 16h 1m
- PR unite (30g)
- 309
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/playwright
-
[Feature]: Set `this.name` in `TargetClosedError` constructorForse di nuovo libera @LeonxLJX l’ha presa 47 giorni fa e non c’è nessuna pull request aperta. ApertaP3-collecting-feedback
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
microsoft/playwright#42522 · 7 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
microsoft/playwright#43564 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
microsoft/playwright#43563 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: `request.response()` never resolves for a service worker's own script when many contexts register service workers at onceForse già presa @pavelfeldman l’ha presa oggi. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
microsoft/playwright#43562 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]:Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
microsoft/playwright#43559 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/playwright
Issue simili
-
agent/scanner help wanted hive/claimed-by-scanner kind/bug stage/020-claimed
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
hivecommons/rationguard#315 ·
I maintainer di solito rispondono entro 1 giorno
-
agent-ready area: ui-sdk priority: p3 type: chore
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
schlessera/brain-kit#2534 ·
I maintainer di solito rispondono entro 1 giorno
-
bug lane:gh-5
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
LLM-4-People/bridlewise-testing#122 ·
I maintainer di solito rispondono entro 1 giorno
-
bug priority: P2
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement priority:low ready-for-dev
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno