diff --git a/test/automation/src/code.ts b/test/automation/src/code.ts index 6009e7c51f5..b297dd50a65 100644 --- a/test/automation/src/code.ts +++ b/test/automation/src/code.ts @@ -27,6 +27,7 @@ export interface LaunchOptions { readonly remote?: boolean; readonly web?: boolean; readonly tracing?: boolean; + snapshots?: boolean; readonly headless?: boolean; readonly browser?: 'chromium' | 'webkit' | 'firefox'; readonly quality: Quality; diff --git a/test/automation/src/playwrightBrowser.ts b/test/automation/src/playwrightBrowser.ts index e36d070cdc9..3c52d261051 100644 --- a/test/automation/src/playwrightBrowser.ts +++ b/test/automation/src/playwrightBrowser.ts @@ -88,7 +88,7 @@ async function launchServer(options: LaunchOptions) { } async function launchBrowser(options: LaunchOptions, endpoint: string) { - const { logger, workspacePath, tracing, headless } = options; + const { logger, workspacePath, tracing, snapshots, headless } = options; const browser = await measureAndLog(() => playwright[options.browser ?? 'chromium'].launch({ headless: headless ?? false, @@ -101,7 +101,7 @@ async function launchBrowser(options: LaunchOptions, endpoint: string) { if (tracing) { try { - await measureAndLog(() => context.tracing.start({ screenshots: true, /* remaining options are off for perf reasons */ }), 'context.tracing.start()', logger); + await measureAndLog(() => context.tracing.start({ screenshots: true, snapshots }), 'context.tracing.start()', logger); } catch (error) { logger.log(`Playwright (Browser): Failed to start playwright tracing (${error})`); // do not fail the build when this fails } diff --git a/test/automation/src/playwrightElectron.ts b/test/automation/src/playwrightElectron.ts index 660320be235..41eb4ec4150 100644 --- a/test/automation/src/playwrightElectron.ts +++ b/test/automation/src/playwrightElectron.ts @@ -27,7 +27,7 @@ export async function launch(options: LaunchOptions): Promise<{ electronProcess: } async function launchElectron(configuration: IElectronConfiguration, options: LaunchOptions) { - const { logger, tracing } = options; + const { logger, tracing, snapshots } = options; const electron = await measureAndLog(() => playwright._electron.launch({ executablePath: configuration.electronPath, @@ -45,7 +45,7 @@ async function launchElectron(configuration: IElectronConfiguration, options: La if (tracing) { try { - await measureAndLog(() => context.tracing.start({ screenshots: true, /* remaining options are off for perf reasons */ }), 'context.tracing.start()', logger); + await measureAndLog(() => context.tracing.start({ screenshots: true, snapshots }), 'context.tracing.start()', logger); } catch (error) { logger.log(`Playwright (Electron): Failed to start playwright tracing (${error})`); // do not fail the build when this fails } diff --git a/test/smoke/src/areas/extensions/extensions.test.ts b/test/smoke/src/areas/extensions/extensions.test.ts index c78cbe87089..c20700cbc91 100644 --- a/test/smoke/src/areas/extensions/extensions.test.ts +++ b/test/smoke/src/areas/extensions/extensions.test.ts @@ -10,7 +10,10 @@ export function setup(logger: Logger) { describe('Extensions', () => { // Shared before/after handling - installAllHandlers(logger); + installAllHandlers(logger, opts => { + opts.snapshots = true; // enable network tab in devtools for tracing since we install an extension + return opts; + }); it('install and enable vscode-smoketest-check extension', async function () { const app = this.app as Application; diff --git a/test/smoke/src/areas/workbench/localization.test.ts b/test/smoke/src/areas/workbench/localization.test.ts index 12e49ce549e..c3ce9b04fc2 100644 --- a/test/smoke/src/areas/workbench/localization.test.ts +++ b/test/smoke/src/areas/workbench/localization.test.ts @@ -9,8 +9,12 @@ import { installAllHandlers } from '../../utils'; export function setup(logger: Logger) { describe('Localization', () => { + // Shared before/after handling - installAllHandlers(logger); + installAllHandlers(logger, opts => { + opts.snapshots = true; // enable network tab in devtools for tracing since we install an extension + return opts; + }); it('starts with "DE" locale and verifies title and viewlets text is in German', async function () { const app = this.app as Application;