diff --git a/packages/playwright/src/reporters/base.ts b/packages/playwright/src/reporters/base.ts index c11657d69da73..fe0f305364a0b 100644 --- a/packages/playwright/src/reporters/base.ts +++ b/packages/playwright/src/reporters/base.ts @@ -49,7 +49,7 @@ type TestSummary = { export type CommonReporterOptions = { configDir: string, _mode?: 'list' | 'test' | 'merge', - _isTestServer?: boolean, + isTestServer?: boolean, _commandHash?: string, }; diff --git a/packages/playwright/src/reporters/html.ts b/packages/playwright/src/reporters/html.ts index 153eb16a13716..1e30221dfb6b0 100644 --- a/packages/playwright/src/reporters/html.ts +++ b/packages/playwright/src/reporters/html.ts @@ -150,10 +150,10 @@ class HtmlReporter implements ReporterV2 { if (process.env.CI || !this._buildResult) return; const { ok, singleTestId } = this._buildResult; - const shouldOpen = !this._options._isTestServer && (this._open === 'always' || (!ok && this._open === 'on-failure')); + const shouldOpen = !this._options.isTestServer && (this._open === 'always' || (!ok && this._open === 'on-failure')); if (shouldOpen) { await showHTMLReport(this._outputFolder, this._host, this._port, singleTestId); - } else if (this._options._mode === 'test' && !this._options._isTestServer) { + } else if (this._options._mode === 'test' && !this._options.isTestServer) { const packageManagerCommand = getPackageManagerExecCommand(); const relativeReportPath = this._outputFolder === standaloneDefaultFolder() ? '' : ' ' + path.relative(process.cwd(), this._outputFolder); const hostArg = this._host ? ` --host ${this._host}` : ''; diff --git a/packages/playwright/src/runner/reporters.ts b/packages/playwright/src/runner/reporters.ts index 280e0aa1726e2..b5f34013df618 100644 --- a/packages/playwright/src/runner/reporters.ts +++ b/packages/playwright/src/runner/reporters.ts @@ -106,8 +106,8 @@ export function createErrorCollectingReporter(screen: Screen): ErrorCollectingRe function reporterOptions(config: FullConfigInternal, mode: 'list' | 'test' | 'merge', isTestServer: boolean): CommonReporterOptions { return { configDir: config.configDir, + isTestServer: isTestServer, _mode: mode, - _isTestServer: isTestServer, _commandHash: computeCommandHash(config), }; } diff --git a/tests/playwright-test/reporter.spec.ts b/tests/playwright-test/reporter.spec.ts index 358368a240bd7..81c1462cee5df 100644 --- a/tests/playwright-test/reporter.spec.ts +++ b/tests/playwright-test/reporter.spec.ts @@ -831,3 +831,21 @@ test('attachments are reported in onStepEnd', { annotation: { type: 'issue', des '[hook] After Hooks: 2 attachments in result', ]); }); + +test('is passed isTestServer', { annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/37867' } }, async ({ runInlineTest }) => { + class TestReporter implements Reporter { + constructor(options) { + console.log('%% isTestServer=' + options.isTestServer); + } + } + const result = await runInlineTest({ + 'reporter.ts': `module.exports = ${TestReporter.toString()}`, + 'playwright.config.ts': `module.exports = { reporter: './reporter' };`, + 'a.spec.ts': ` + import { test, expect } from '@playwright/test'; + test('test', async () => {}); + `, + }, { 'reporter': '', 'workers': 1 }); + + expect(result.outputLines).toEqual(['isTestServer=false']); +});