Skip to content
Vitest 3
Main Navigation Guia & APIConfiguraçãoModo NavegadorAPI Avançada
3.2.0
2.1.9
1.6.1
0.34.6

Português – Brasil

English
简体中文
繁體中文
Español
Français
Русский
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Português – Brasil

English
简体中文
繁體中文
Español
Français
Русский
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Aparência

Sidebar Navigation

Introdução

Por que o Modo Navegador

Modo Navegador

Configuração

Referência de Configuração do Navegador

Configurando o Playwright

Configurando WebdriverIO

API

API de Contexto

API de Interatividade

Seletores

API de Asserções

Comandos

Guia

Múltiplas Configurações

Configurando o Vitest

Referência da API de Teste

APIs Avançadas

Nesta página

Múltiplas Configurações ​

A partir do Vitest 3, você pode especificar várias configurações de navegador distintas usando a nova opção browser.instances.

A principal vantagem de usar browser.instances em vez dos projetos de teste é o desempenho aprimorado do cache. Cada instância utilizará o mesmo servidor Vite, o que significa que a transformação de arquivos e o pré-agrupamento de dependências precisam ocorrer apenas uma vez.

Múltiplos Navegadores ​

Você pode usar o campo browser.instances para especificar opções para diferentes navegadores. Por exemplo, se você deseja executar os mesmos testes em navegadores distintos, a configuração mínima é a seguinte:

ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
  test: {
    browser: {
      enabled: true,
      provider: 'playwright',
      headless: true,
      instances: [
        { browser: 'chromium' },
        { browser: 'firefox' },
        { browser: 'webkit' },
      ],
    },
  },
});

Configurações Diferentes ​

Você também pode especificar diferentes opções de configuração independentemente do navegador (embora as instâncias também possam ter campos browser):

ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
  test: {
    browser: {
      enabled: true,
      provider: 'playwright',
      headless: true,
      instances: [
        {
          browser: 'chromium',
          name: 'chromium-1',
          setupFiles: ['./ratio-setup.ts'],
          provide: {
            ratio: 1,
          },
        },
        {
          browser: 'chromium',
          name: 'chromium-2',
          provide: {
            ratio: 2,
          },
        },
      ],
    },
  },
});
ts
import { expect, inject, test } from 'vitest';
import { globalSetupModifier } from './example.js';

test('ratio works', () => {
  expect(inject('ratio') * globalSetupModifier).toBe(14);
});

Neste exemplo, o Vitest executará todos os testes no navegador chromium, mas apenas executará o arquivo './ratio-setup.ts' na primeira configuração e injetará um valor ratio diferente dependendo do campo provide.

WARNING

Observe que você precisa definir um valor name personalizado se estiver usando o mesmo nome de navegador, pois o Vitest atribuirá o browser como o nome do projeto, caso contrário.

Filtragem ​

Você pode filtrar quais projetos executar com a flag --project. O Vitest atribuirá automaticamente o nome do navegador como nome do projeto se não for atribuído manualmente. Se a configuração raiz já tiver um nome, o Vitest os mesclará: custom -> custom (browser).

shell
$ vitest --project=chromium
ts
export default defineConfig({
  test: {
    browser: {
      instances: [
        // name: chromium
        { browser: 'chromium' },
        // name: custom
        { browser: 'firefox', name: 'custom' },
      ]
    }
  }
})
ts
export default defineConfig({
  test: {
    name: 'custom',
    browser: {
      instances: [
        // name: custom (chromium)
        { browser: 'chromium' },
        // name: manual
        { browser: 'firefox', name: 'manual' },
      ]
    }
  }
})

WARNING

O Vitest não pode executar várias instâncias que tenham o modo headless definido como false, que é o comportamento padrão. Durante o desenvolvimento, você pode selecionar qual projeto executar em seu terminal:

shell
? Found multiple projects that run browser tests in headed mode: "chromium", "firefox".
Vitest cannot run multiple headed browsers at the same time. Select a single project
to run or cancel and run tests with "headless: true" option. Note that you can also
start tests with --browser=name or --project=name flag. › - Use arrow-keys. Return to submit.
❯   chromium
    firefox

Se você tiver vários projetos com headless: false no CI (ou seja, headless: false é definido manualmente na configuração e não é sobrescrito no ambiente CI), o Vitest falhará e não executará nenhum teste.

A capacidade de executar testes no modo headless não é afetada por isso. Você ainda pode executar todas as instâncias em paralelo, desde que não tenham headless: false.

Pager
AnteriorComandos
PróximoConfigurando o Vitest

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/browser/multiple-setups

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team