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

TestSuite ​

A classe TestSuite representa um único conjunto de testes. Esta classe está disponível apenas na thread principal. Para interagir com tarefas em tempo de execução, consulte a "API do Runner".

A instância de TestSuite sempre possui uma propriedade type com o valor suite. Você pode utilizá-la para diferenciar entre os tipos de tarefas:

ts
if (task.type === 'suite') {
  task; // TestSuite
}

project ​

Faz referência ao TestProject ao qual o conjunto de testes pertence.

module ​

Esta é uma referência direta ao TestModule onde o conjunto de testes é definido.

name ​

Este é o nome do conjunto de testes que foi passado para a função describe.

ts
import { describe } from 'vitest';

// [!code word:'a lógica de validação']
describe('a lógica de validação', () => {
  // ...
});

fullName ​

O nome completo do conjunto de testes, incluindo todos os conjuntos de testes pai, separados pelo símbolo >. Por exemplo, este conjunto de testes tem o nome completo "a lógica de validação > validando cidades":

ts
import { describe, test } from 'vitest';

// [!code word:'a lógica de validação']
// [!code word:'validando cidades']
describe('a lógica de validação', () => {
  describe('validando cidades', () => {
    // ...
  });
});

id ​

Este é o identificador único do conjunto de testes. Este ID é determinístico e permanecerá o mesmo para o mesmo conjunto de testes em múltiplas execuções. O ID é gerado com base no nome do projeto, ID do módulo e ordem do conjunto de testes.

O ID tem o seguinte formato:

1223128da3_0_0_0
^^^^^^^^^^ hash do arquivo
           ^ índice do conjunto de testes
             ^ índice do conjunto de testes aninhado
               ^ índice do teste

TIP

Você pode gerar a hash do arquivo com a função generateFileHash de vitest/node, disponível a partir do Vitest 3:

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

const hash = generateFileHash(
  '/file/path.js', // caminho relativo
  undefined // o nome do projeto ou `undefined`, caso não esteja definido
);

DANGER

Não tente interpretar o ID. Ele pode começar com um sinal de menos: -1223128da3_0_0_0.

location ​

A localização no módulo onde o conjunto de testes foi definido. As localizações são coletadas apenas se includeTaskLocation estiver habilitado na configuração. Observe que esta opção é automaticamente habilitada se as flags --reporter=html, --ui ou --browser forem utilizadas.

A localização deste conjunto de testes será { line: 3, column: 1 }:

ts
import { describe } from 'vitest'

describe('a validação funciona corretamente', () => {
  // ...
})
1
2
3
4
5

parent ​

O conjunto de testes pai. Se o conjunto de testes for chamado diretamente dentro do módulo, o pai será o próprio módulo.

options ​

ts
interface TaskOptions {
  readonly each: boolean | undefined;
  readonly fails: boolean | undefined;
  readonly concurrent: boolean | undefined;
  readonly shuffle: boolean | undefined;
  readonly retry: number | undefined;
  readonly repeats: number | undefined;
  readonly mode: 'run' | 'only' | 'skip' | 'todo';
}

As opções com as quais o conjunto de testes foi coletado.

children ​

Esta é uma coleção de todos os conjuntos de testes e testes dentro do conjunto de testes atual.

ts
for (const task of suite.children) {
  if (task.type === 'test') {
    console.log('teste', task.fullName);
  } else {
    // task é TestSuite
    console.log('conjunto de testes', task.name);
  }
}

WARNING

Observe que suite.children iterará apenas o primeiro nível de aninhamento, não se aprofundando. Se você precisar iterar sobre todos os testes ou conjuntos de testes, utilize children.allTests() ou children.allSuites(). Se você precisar iterar sobre tudo, utilize uma função recursiva:

ts
function visit(collection: TestCollection) {
  for (const task of collection) {
    if (task.type === 'suite') {
      // processar um conjunto de testes
      visit(task.children);
    } else {
      // processar um teste
    }
  }
}

ok ​

ts
function ok(): boolean;

Verifica se o conjunto de testes possui algum teste falho. Isso também retornará false se o conjunto de testes falhar durante a coleta. Nesse caso, verifique os errors() para erros lançados.

state ​

ts
function state(): TestSuiteState;

Verifica o estado de execução do conjunto de testes. Possíveis valores de retorno:

  • pending: os testes neste conjunto de testes ainda não foram concluídos.
  • failed: este conjunto de testes possui testes que falharam ou que não puderam ser coletados. Se errors() não estiver vazio, significa que o conjunto de testes falhou na coleta dos testes.
  • passed: todos os testes dentro deste conjunto de testes foram aprovados.
  • skipped: este conjunto de testes foi ignorado durante a coleta.

WARNING

Observe que o módulo de teste também possui um método state que retorna os mesmos valores, mas pode retornar um estado queued adicional caso o módulo ainda não tenha sido executado.

errors ​

ts
function errors(): TestError[];

Erros que ocorreram fora da execução do teste durante a coleta, como erros de sintaxe.

ts
import { describe } from 'vitest';

describe('falha na coleta', () => {
  throw new Error('um erro customizado');
});

WARNING

Observe que os erros são serializados em objetos simples: instanceof Error sempre retornará false.

meta 3.1.0+ ​

ts
function meta(): TaskMeta;

Metadados personalizados que foram anexados ao conjunto de testes durante sua execução ou coleta. Os metadados podem ser anexados atribuindo uma propriedade ao objeto task.meta durante uma execução de teste:

ts
import { test } from 'vitest';

describe('a validação funciona corretamente', task => {
  // atribuir "decorated" durante a coleta
  task.meta.decorated = false;

  test('algum teste', ({ task }) => {
    // atribuir "decorated" durante a execução do teste; estará disponível
    // apenas no hook onTestCaseReady
    task.suite.meta.decorated = false;
  });
});

TIP

Se os metadados forem anexados durante a coleta (fora da função test), eles estarão disponíveis no hook onTestModuleCollected no relatório personalizado.

Pager
AnteriorTestCase
PróximoTestModule

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/api/test-suite

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team