diff --git a/packages/playwright-test/src/cli.ts b/packages/playwright-test/src/cli.ts index 540bf81ca6..27b6641539 100644 --- a/packages/playwright-test/src/cli.ts +++ b/packages/playwright-test/src/cli.ts @@ -178,6 +178,9 @@ async function runTests(args: string[], opts: { [key: string]: any }) { async function listTestFiles(opts: { [key: string]: any }) { + // Redefine process.stdout.write in case config decides to pollute stdio. + const write = process.stdout.write.bind(process.stdout); + process.stdout.write = (() => {}) as any; const configFileOrDirectory = opts.config ? path.resolve(process.cwd(), opts.config) : process.cwd(); const resolvedConfigFile = Runner.resolveConfigFile(configFileOrDirectory)!; if (restartWithExperimentalTsEsm(resolvedConfigFile)) @@ -186,7 +189,7 @@ async function listTestFiles(opts: { [key: string]: any }) { const runner = new Runner({}, { defaultConfig: {} }); await runner.loadConfigFromResolvedFile(resolvedConfigFile); const report = await runner.listTestFiles(resolvedConfigFile, opts.project); - process.stdout.write(JSON.stringify(report), () => { + write(JSON.stringify(report), () => { process.exit(0); }); }