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

API

Node API

APIs Avançadas

API Vitest

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API de Plugin

API do Runner

Reporters

Metadados da Tarefa

Guia

Executando Testes

Estendendo Relatores

Pool Personalizado

Configurando o Vitest

Referência da API de Teste

Nesta página

APIs Avançadas ​

WARNING

Este guia lista APIs avançadas para executar testes usando um script Node.js. Se você deseja apenas executar testes, provavelmente não precisará dele. Ele é voltado principalmente para desenvolvedores de bibliotecas.

Você pode importar qualquer método do ponto de entrada vitest/node.

startVitest ​

ts
function startVitest(
  mode: VitestRunMode,
  cliFilters: string[] = [],
  options: CliOptions = {},
  viteOverrides?: ViteUserConfig,
  vitestOptions?: VitestOptions
): Promise<Vitest>;

Você pode iniciar a execução de testes Vitest usando a API Node:

js
import { startVitest } from 'vitest/node';

const vitest = await startVitest('test');

await vitest.close();

A função startVitest retorna uma instância Vitest caso os testes possam ser iniciados.

Se o modo de observação não estiver ativado, o Vitest chamará o método close automaticamente.

Se o modo de observação estiver ativado e o terminal suportar TTY, o Vitest registrará atalhos no console.

Você pode passar uma lista de filtros como o segundo argumento. O Vitest executará apenas os testes que contiverem pelo menos uma das strings fornecidas em seus caminhos de arquivo.

Além disso, você pode usar o terceiro argumento para passar argumentos CLI, os quais substituirão quaisquer opções de configuração de teste. Alternativamente, você pode passar a configuração completa do Vite como o quarto argumento, a qual terá precedência sobre quaisquer outras opções definidas pelo usuário.

Após a execução dos testes, você pode obter os resultados da API state.getTestModules:

ts
import type { TestModule } from 'vitest/node';

const vitest = await startVitest('test');

console.log(vitest.state.getTestModules()); // [TestModule]

TIP

O guia "Executando Testes" contém um exemplo de uso.

createVitest ​

ts
function createVitest(
  mode: VitestRunMode,
  options: CliOptions,
  viteOverrides: ViteUserConfig = {},
  vitestOptions: VitestOptions = {}
): Promise<Vitest>;

Você pode criar uma instância Vitest usando a função createVitest. Ela retorna a mesma instância Vitest que startVitest, mas não inicia os testes nem valida os pacotes instalados.

js
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});

TIP

O guia "Executando Testes" contém um exemplo de uso.

resolveConfig ​

ts
function resolveConfig(
  options: UserConfig = {},
  viteOverrides: ViteUserConfig = {}
): Promise<{
  vitestConfig: ResolvedConfig;
  viteConfig: ResolvedViteConfig;
}>;

Este método resolve a configuração utilizando parâmetros personalizados. Caso nenhum parâmetro seja fornecido, o root será process.cwd().

ts
import { resolveConfig } from 'vitest/node';

// vitestConfig contém apenas propriedades "test" resolvidas
const { vitestConfig, viteConfig } = await resolveConfig({
  mode: 'custom',
  configFile: false,
  resolve: {
    conditions: ['custom'],
  },
  test: {
    setupFiles: ['/my-setup-file.js'],
    pool: 'threads',
  },
});

INFO

Devido à forma como o createServer do Vite funciona, o Vitest precisa resolver a configuração no hook configResolve do plugin. Portanto, este método não é de fato usado internamente e é exposto exclusivamente como uma API pública.

Caso você passe a configuração para as APIs startVitest ou createVitest, o Vitest ainda resolverá a configuração novamente.

WARNING

O resolveConfig não resolve projetos. Para resolver as configurações de projetos, o Vitest precisa de um servidor Vite em execução.

Note também que viteConfig.test não será totalmente resolvido. Se você precisar da configuração do Vitest, use vitestConfig em vez disso.

parseCLI ​

ts
function parseCLI(
  argv: string | string[],
  config: CliParseOptions = {}
): {
  filter: string[];
  options: CliOptions;
};

Você pode usar este método para analisar argumentos CLI. Ele aceita uma string (com argumentos separados por um único espaço) ou um array de strings de argumentos CLI no mesmo formato que o Vitest CLI utiliza. Ele retorna um filtro e opções que você pode passar posteriormente para os métodos createVitest ou startVitest.

ts
import { parseCLI } from 'vitest/node';

const result = parseCLI('vitest ./files.ts --coverage --browser=chrome');

result.options;
// {
//   coverage: { enabled: true },
//   browser: { name: 'chrome', enabled: true }
// }

result.filter;
// ['./files.ts']
Pager
PróximoAPI Vitest

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team