Skip to content
Vitest 2
Main Navigation GuiaAPIConfiguraçãoModo NavegadorAvançado
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 do Node

Executor de Teste

Metadados da Tarefa

Estendendo os reporters

Pool Customizado

Nesta página

API do Node ​

WARNING

O Vitest expõe uma API experimental privada. Alterações que quebrem a compatibilidade podem não seguir o SemVer, portanto, fixe a versão do Vitest ao utilizá-la.

startVitest ​

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

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

const vitest = await startVitest('test');

await vitest?.close();

A função startVitest retorna uma instância de Vitest se os testes puderem ser iniciados com sucesso. Retorna undefined se uma das seguintes condições ocorrer:

  • O Vitest não encontrou o pacote vite (geralmente instalado junto com o Vitest).
  • Se a cobertura de código estiver ativada e o modo de execução (run mode) for "test", mas o pacote de cobertura não estiver instalado (@vitest/coverage-v8 ou @vitest/coverage-istanbul).
  • Se o pacote de ambiente não estiver instalado (jsdom/happy-dom/@edge-runtime/vm).

Se undefined for retornado ou os testes falharem durante a execução, o Vitest define process.exitCode como 1.

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

Se o modo de observação estiver habilitado e o terminal suportar TTY, o Vitest exibirá atalhos do console.

Você pode passar uma lista de filtros como um segundo argumento. O Vitest executará apenas os testes cujos caminhos contenham pelo menos uma das strings passadas.

Além disso, você pode usar o terceiro argumento para passar argumentos de linha de comando (CLI), que substituirão quaisquer opções de configuração de teste.

Alternativamente, você pode passar a configuração completa do Vite como o quarto argumento, que terá prioridade sobre quaisquer outras opções definidas pelo usuário.

Após executar os testes, você pode obter os resultados através da API state.getFiles:

ts
const vitest = await startVitest('test');

console.log(vitest.state.getFiles()); // [{ type: 'file', ... }]

Desde o Vitest 2.1, recomenda-se usar a API de "Tarefas Reportadas" (Reported Tasks) juntamente com state.getFiles. No futuro, o Vitest retornará esses objetos diretamente:

ts
const vitest = await startVitest('test');

const [fileTask] = vitest.state.getFiles();
const testFile = vitest.state.getReportedEntity(fileTask);

createVitest ​

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

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

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

parseCLI ​

Você pode usar este método para analisar os argumentos da linha de comando (CLI). Ele aceita uma string (onde os argumentos são separados por um único espaço) ou um array de strings de argumentos da CLI no mesmo formato que a CLI do Vitest usa. Ele retorna um filtro e options que você pode posteriormente passar para os métodos createVitest ou startVitest.

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

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

Vitest ​

A instância do Vitest requer o modo de teste atual. Pode ser:

  • test ao executar testes de tempo de execução.
  • benchmark ao executar benchmarks.

mode ​

test ​

O modo de teste executará apenas as funções dentro de test ou it e lançará um erro ao encontrar bench. Este modo usa as opções include e exclude na configuração para encontrar arquivos de teste.

benchmark ​

O modo de benchmark executa funções bench e lançará um erro ao encontrar test ou it. Este modo usa as opções benchmark.include e benchmark.exclude na configuração para encontrar arquivos de benchmark.

start ​

Você pode iniciar a execução de testes ou benchmarks com o método start. Você pode passar um array de strings para filtrar arquivos de teste.

provide ​

O Vitest expõe o método provide, que serve como um atalho para vitest.getCoreWorkspaceProject().provide. Com este método, você pode passar valores da thread principal para os testes. Todos os valores são verificados com structuredClone antes de serem armazenados, mas os próprios valores não são clonados.

Para receber os valores no teste, você precisa importar o método inject do ponto de entrada vitest:

ts
import { inject } from 'vitest';
const port = inject('wsPort'); // 3000

Para uma melhor segurança de tipos, recomendamos que você estenda o tipo de ProvidedContext:

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

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

declare module 'vitest' {
  export interface ProvidedContext {
    wsPort: number;
  }
}

WARNING

Tecnicamente, provide é um método de WorkspaceProject, então ele é limitado ao projeto específico. No entanto, todos os projetos herdam os valores do projeto core, o que faz de vitest.provide uma maneira universal de passar valores para os testes.

TIP

Este método também está disponível para arquivos de configuração global para casos em que você não deseja usar a API pública:

js
export default function setup({ provide }) {
  provide('wsPort', 3000);
}
Pager
PróximoExecutor de Teste

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors

https://v2.vitest.dev/advanced/api

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors