diff --git a/packages/playwright-core/package.json b/packages/playwright-core/package.json index c78dc8026a..b73822a1c8 100644 --- a/packages/playwright-core/package.json +++ b/packages/playwright-core/package.json @@ -24,6 +24,7 @@ "./lib/grid/gridServer": "./lib/grid/gridServer.js", "./lib/grid/gridClient": "./lib/grid/gridClient.js", "./lib/grid/dockerGridFactory": "./lib/grid/dockerGridFactory.js", + "./lib/outofprocess": "./lib/outofprocess.js", "./lib/utils/async": "./lib/utils/async.js", "./lib/utils/httpServer": "./lib/utils/httpServer.js", "./lib/utils/multimap": "./lib/utils/multimap.js", diff --git a/packages/playwright-test/src/index.ts b/packages/playwright-test/src/index.ts index f3f995a72e..3b10e8f8ee 100644 --- a/packages/playwright-test/src/index.ts +++ b/packages/playwright-test/src/index.ts @@ -24,6 +24,7 @@ import { GridClient } from 'playwright-core/lib/grid/gridClient'; import { prependToTestError } from './util'; export { expect } from './expect'; export const _baseTest: TestType<{}, {}> = rootTestType.test; +import * as outOfProcess from 'playwright-core/lib/outofprocess'; if ((process as any)['__pw_initiator__']) { const originalStackTraceLimit = Error.stackTraceLimit; @@ -56,7 +57,11 @@ export const test = _baseTest.extend({ if (process.env.PW_GRID) { const gridClient = await GridClient.connect(process.env.PW_GRID); await use(gridClient.playwright() as any); - await gridClient.close(); + gridClient.close(); + } else if (process.env.PW_OUT_OF_PROCESS) { + const impl = await outOfProcess.start(); + await use(impl.playwright as any); + await impl.stop(); } else { await use(require('playwright-core')); }