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

TestCase ​

A classe TestCase representa um único teste. Esta classe está disponível apenas no thread principal. Para trabalhar com tarefas em tempo de execução, consulte a "API do Executor".

A instância de TestCase sempre possui uma propriedade type cujo valor é test. Você pode usá-la para distinguir entre diferentes tipos de tarefas:

ts
if (task.type === 'test') {
  task; // TestCase
}

project ​

Refere-se ao TestProject ao qual o teste pertence.

module ​

Esta é uma referência direta ao TestModule no qual o teste é definido.

name ​

Este é o nome do teste passado para a função test.

ts
import { test } from 'vitest';

// [!code word:'the validation works correctly']
test('the validation works correctly', () => {
  // ...
});

fullName ​

O nome completo do teste, incluindo todas as suítes pai, é separado pelo símbolo >. Por exemplo, este teste tem o nome completo "the validation logic > the validation works correctly":

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

// [!code word:'the validation works correctly']
// [!code word:'the validation logic']
describe('the validation logic', () => {
  test('the validation works correctly', () => {
    // ...
  });
});

id ​

Este é o identificador único do teste. Este ID é determinístico e permanecerá o mesmo para o mesmo teste em várias execuções. O ID é baseado no nome do projeto, ID do módulo e ordem do teste.

O ID tem o seguinte formato:

1223128da3_0_0
^^^^^^^^^^ o hash do arquivo
           ^ o índice da suíte
             ^ o índice do teste

TIP

Você pode gerar o hash do arquivo com a função generateFileHash do vitest/node, que está 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 fazer o parse do ID. Ele pode ter um sinal de menos no início: -1223128da3_0_0_0.

location ​

A localização no módulo onde o teste foi definido. A localização é coletada apenas se includeTaskLocation estiver ativado na configuração. Observe que esta opção é automaticamente habilitada se as flags --reporter=html, --ui ou --browser forem usadas.

A localização deste teste será igual a { line: 3, column: 1 }:

ts
import { test } from 'vitest'

test('the validation works correctly', () => {
  // ...
})
1
2
3
4
5

parent ​

Suíte pai. Se o teste foi 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 teste foi coletado.

ok ​

ts
function ok(): boolean;

Verifica se o teste não falhou na suíte. Se o teste ainda não terminou ou foi pulado, ele retornará true.

meta ​

ts
function meta(): TaskMeta;

Metadados personalizados que foram anexados ao teste durante sua execução. Metadados podem ser anexados atribuindo uma propriedade ao objeto ctx.task.meta durante a execução de um teste:

ts
import { test } from 'vitest';

test('the validation works correctly', ({ task }) => {
  // ...

  task.meta.decorated = false;
});

Se o teste ainda não terminou de ser executado, os metadados serão um objeto vazio.

result ​

ts
function result(): TestResult;

Os resultados do teste. Se o teste ainda não terminou ou foi apenas coletado, será TestResultPending:

ts
export interface TestResultPending {
  /**
   * O teste foi coletado, mas ainda não terminou de ser executado.
   */
  readonly state: 'pending';
  /**
   * Testes pendentes não têm erros.
   */
  readonly errors: undefined;
}

Se o teste foi ignorado, o retorno será TestResultSkipped:

ts
interface TestResultSkipped {
  /**
   * O teste foi ignorado com a *flag* `skip` ou `todo`.
   * Você pode ver qual foi usada na opção `options.mode`.
   */
  readonly state: 'skipped';
  /**
   * Testes ignorados não têm erros.
   */
  readonly errors: undefined;
  /**
   * Uma nota personalizada passada para `ctx.skip(note)`.
   */
  readonly note: string | undefined;
}

TIP

Se o teste foi ignorado porque outro teste tem a flag only, o options.mode será skip.

Se o teste falhou, o valor de retorno será TestResultFailed:

ts
interface TestResultFailed {
  /**
   * O teste falhou ao executar.
   */
  readonly state: 'failed';
  /**
   * Erros que foram lançados durante a execução do teste.
   */
  readonly errors: ReadonlyArray<TestError>;
}

Se o teste passou, o retorno será TestResultPassed:

ts
interface TestResultPassed {
  /**
   * O teste passou com sucesso.
   */
  readonly state: 'passed';
  /**
   * Erros que foram lançados durante a execução do teste.
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

Observe que o teste com estado passed ainda pode ter erros anexados - isso pode acontecer se retry foi acionado pelo menos uma vez.

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

Informações úteis sobre o teste, como duração, uso de memória, etc:

ts
interface TestDiagnostic {
  /**
   * Se a duração do teste exceder `slowTestThreshold`.
   */
  readonly slow: boolean;
  /**
   * A quantidade de memória usada pelo teste em bytes.
   * Este valor está disponível apenas se o teste foi executado com a *flag* `logHeapUsage`.
   */
  readonly heap: number | undefined;
  /**
   * O tempo que leva para executar o teste em ms.
   */
  readonly duration: number;
  /**
   * O tempo em ms quando o teste começou.
   */
  readonly startTime: number;
  /**
   * A quantidade de vezes que o teste foi retentado.
   */
  readonly retryCount: number;
  /**
   * A quantidade de vezes que o teste foi repetido conforme configurado pela opção `repeats`.
   * Este valor pode ser menor se o teste falhou durante a repetição e nenhum `retry` estiver configurado.
   */
  readonly repeatCount: number;
  /**
   * Se o teste passou em uma segunda tentativa.
   */
  readonly flaky: boolean;
}

INFO

diagnostic() retornará undefined se o teste ainda não foi agendado para execução.

Pager
AnteriorTestSpecification
PróximoTestSuite

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team

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

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team