Configurando o Playwright
Por padrão, o TypeScript não reconhece as opções de provedores e as propriedades expect
adicionais. Certifique-se de incluir a referência a @vitest/browser/providers/playwright
para que o TypeScript possa reconhecer as definições de opções personalizadas:
/// <reference types="@vitest/browser/providers/playwright" />
Alternativamente, você também pode adicioná-lo ao campo compilerOptions.types
em seu arquivo tsconfig.json
. Observe que especificar qualquer item neste campo desativará o carregamento automático dos pacotes @types/*
.
{
"compilerOptions": {
"types": ["@vitest/browser/providers/playwright"]
}
}
O Vitest abre uma única página para executar todos os testes contidos no mesmo arquivo. Você pode configurar as propriedades launch
, connect
e context
em instances
:
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
browser: {
instances: [
{
browser: 'firefox',
launch: {},
connect: {},
context: {},
},
],
},
},
})
WARNING
Antes do Vitest 3, essas opções estavam localizadas na propriedade test.browser.providerOptions
:
export default defineConfig({
test: {
browser: {
providerOptions: {
launch: {},
context: {},
},
},
},
});
providerOptions
foi descontinuado em favor de instances
.
launch
Essas opções são passadas diretamente ao comando playwright[browser].launch
. Você pode ler mais sobre o comando e os argumentos disponíveis na documentação do Playwright.
WARNING
O Vitest ignorará a opção launch.headless
. Em vez disso, use test.browser.headless
.
Observe que o Vitest adicionará sinalizadores de depuração a launch.args
se --inspect
estiver habilitado.
connect 3.2.0+
Essas opções são passadas diretamente ao comando playwright[browser].connect
. Você pode ler mais sobre o comando e os argumentos disponíveis na documentação do Playwright.
WARNING
Como este comando se conecta a um servidor Playwright existente, quaisquer opções de launch
serão desconsideradas.
context
O Vitest cria um novo contexto para cada arquivo de teste ao chamar browser.newContext()
. Você pode configurar esse comportamento especificando argumentos personalizados.
TIP
Observe que o contexto é criado para cada arquivo de teste, não para cada teste, como no executor de testes do Playwright.
WARNING
O Vitest sempre define ignoreHTTPSErrors
como true
, caso seu servidor utilize HTTPS, e serviceWorkers
como 'allow'
para dar suporte à simulação de módulos via MSW.
Também é recomendado usar test.browser.viewport
em vez de especificá-lo aqui, pois será perdido durante a execução no modo headless.
actionTimeout
3.0.0+
- Padrão: sem tempo limite (era 1 segundo antes da versão 3.0.0)
Este valor configura o tempo limite padrão que o Playwright leva para esperar até que todas as verificações de acessibilidade sejam aprovadas e a ação seja realmente concluída.
Você também pode configurar o tempo limite da ação para cada ação:
import { page, userEvent } from '@vitest/browser/context';
await userEvent.click(page.getByRole('button'), {
timeout: 1_000,
});