mirror of
https://github.com/vitest-dev/vitest.git
synced 2025-12-08 18:26:03 +00:00
2.3 KiB
2.3 KiB
| title | outline |
|---|---|
| browser.provider | Config | deep |
browser.provider
- Type:
BrowserProviderOption - Default:
'preview' - CLI:
--browser.provider=playwright
The return value of the provider factory. You can import the factory from @vitest/browser-<provider-name> or make your own provider:
import { playwright } from '@vitest/browser-playwright'
import { webdriverio } from '@vitest/browser-webdriverio'
import { preview } from '@vitest/browser-preview'
export default defineConfig({
test: {
browser: {
provider: playwright(),
provider: webdriverio(),
provider: preview(),
},
},
})
To configure how provider initializes the browser, you can pass down options to the factory function:
import { playwright } from '@vitest/browser-playwright'
export default defineConfig({
test: {
browser: {
// shared provider options between all instances
provider: playwright({
launchOptions: {
slowMo: 50,
channel: 'chrome-beta',
},
actionTimeout: 5_000,
}),
instances: [
{ browser: 'chromium' },
{
browser: 'firefox',
// overriding options only for a single instance
// this will NOT merge options with the parent one
provider: playwright({
launchOptions: {
firefoxUserPrefs: {
'browser.startup.homepage': 'https://example.com',
},
},
})
}
],
},
},
})
Custom Provider advanced
::: danger ADVANCED API
The custom provider API is highly experimental and can change between patches. If you just need to run tests in a browser, use the browser.instances option instead.
:::
export interface BrowserProvider {
name: string
mocker?: BrowserModuleMocker
readonly initScripts?: string[]
/**
* @experimental opt-in into file parallelisation
*/
supportsParallelism: boolean
getCommandsContext: (sessionId: string) => Record<string, unknown>
openPage: (sessionId: string, url: string) => Promise<void>
getCDPSession?: (sessionId: string) => Promise<CDPSession>
close: () => Awaitable<void>
}