Configuración de Playwright
Por defecto, TypeScript no reconoce las opciones del proveedor ni las propiedades expect
adicionales. Para que TypeScript pueda obtener las definiciones de las opciones personalizadas, asegúrate de referenciar @vitest/browser/providers/playwright
:
/// <reference types="@vitest/browser/providers/playwright" />
Alternativamente, también puedes añadirlo al campo compilerOptions.types
en tu archivo tsconfig.json
. Ten en cuenta que cualquier especificación en este campo deshabilitará la carga automática de los paquetes @types/*
.
{
"compilerOptions": {
"types": ["@vitest/browser/providers/playwright"]
}
}
Vitest abre una única página para ejecutar todos los tests en el mismo archivo. Puedes configurar las propiedades launch
, connect
y context
dentro de instances
:
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
browser: {
instances: [
{
browser: 'firefox',
launch: {},
connect: {},
context: {},
},
],
},
},
})
WARNING
Antes de Vitest 3, estas opciones se encontraban en la propiedad test.browser.providerOptions
:
export default defineConfig({
test: {
browser: {
providerOptions: {
launch: {},
context: {},
},
},
},
});
providerOptions
está en desuso en favor de instances
.
launch
Estas opciones se transfieren directamente al comando playwright[browser].launch
. Puedes encontrar más información sobre el comando y los argumentos disponibles en la documentación de Playwright.
WARNING
Vitest ignorará la opción launch.headless
. En su lugar, usa test.browser.headless
.
Ten en cuenta que Vitest incluirá argumentos de depuración en launch.args
si --inspect
está habilitado.
connect 3.2.0+
Estas opciones se transfieren directamente al comando playwright[browser].connect
. Puedes encontrar más información sobre el comando y los argumentos disponibles en la documentación de Playwright.
WARNING
Dado que este comando se conecta a un servidor Playwright existente, cualquier opción de launch
será ignorada.
context
Vitest crea un nuevo contexto para cada archivo de prueba al invocar browser.newContext()
. Puedes configurar este comportamiento definiendo argumentos personalizados.
TIP
Ten en cuenta que el contexto se crea para cada archivo de prueba, no para cada prueba como en el ejecutor de pruebas de Playwright.
WARNING
Vitest siempre establece ignoreHTTPSErrors
a true
si tu servidor se sirve a través de HTTPS y serviceWorkers
a 'allow'
para dar soporte a la simulación de módulos a través de MSW.
También se recomienda usar test.browser.viewport
en lugar de especificarlo aquí, ya que se ignorará cuando las pruebas se ejecuten en modo headless.
actionTimeout
3.0.0+
- Por defecto: sin tiempo de espera (1 segundo antes de la versión 3.0.0)
Este valor configura el tiempo de espera predeterminado que Playwright utiliza para esperar hasta que todas las comprobaciones de accesibilidad pasen y la acción se complete realmente.
También puedes configurar el tiempo de espera de la acción para cada acción:
import { page, userEvent } from '@vitest/browser/context';
await userEvent.click(page.getByRole('button'), {
timeout: 1_000,
});