Skip to content
Vitest 3
Main Navigation Guía & APIConfiguraciónModo NavegadorAPI avanzada
3.2.0
2.1.9
1.6.1
0.34.6

Español

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

Español

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

Apariencia

Sidebar Navigation

API

Node API

API Avanzadas

API de Vitest

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API de Plugins

API del Runner

Reporteros

Metadatos de Tareas

Guía

Ejecución de Pruebas

Extensión de los Reporters

Pool Personalizado

Configuración de Vitest

Referencia de la API de prueba

En esta página

TestCase ​

La clase TestCase representa una prueba individual. Esta clase solo está disponible en el hilo principal. Para trabajar con tareas en tiempo de ejecución, consulta la "API de Runner".

Una instancia de TestCase siempre tiene una propiedad type con el valor test. Puedes usarla para distinguir entre diferentes tipos de tareas:

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

project ​

Se refiere al TestProject al que pertenece la prueba.

module ​

Es una referencia directa al TestModule donde se define la prueba.

name ​

Es el nombre de la prueba que se pasó a la función test.

ts
import { test } from 'vitest';

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

fullName ​

El nombre completo de la prueba, incluyendo todas las suites padre, separadas por el símbolo >. Por ejemplo, esta prueba tiene el nombre 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 ​

Es el ID único de la prueba. Este ID es determinista y será el mismo para la misma prueba en múltiples ejecuciones. El ID se basa en el nombre del proyecto, el ID del módulo y el orden de la prueba.

El formato del ID es el siguiente:

1223128da3_0_0
^^^^^^^^^^ hash del archivo
           ^ índice de la suite
             ^ índice de la prueba

TIP

Puedes generar el hash del archivo con la función generateFileHash de vitest/node, disponible a partir de Vitest 3:

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

const hash = generateFileHash(
  '/file/path.js', // ruta relativa
  undefined // el nombre del proyecto o `undefined` si no se ha establecido
);

DANGER

No intentes analizar el ID. Puede comenzar con un signo menos: -1223128da3_0_0_0.

location ​

Ubicación en el módulo donde se definió la prueba. Las ubicaciones solo se recopilan si includeTaskLocation está habilitado en la configuración. Ten en cuenta que esta opción se habilita automáticamente si se utilizan las banderas --reporter=html, --ui o --browser.

La ubicación de esta prueba será { line: 3, column: 1 }:

ts
import { test } from 'vitest'

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

parent ​

La Suite padre. Si la prueba se llamó directamente dentro del módulo, el padre será el propio 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';
}

Opciones con las que se recopiló la prueba.

ok ​

ts
function ok(): boolean;

Verifica si la prueba no falló en la suite. Si la prueba aún no ha terminado o fue omitida, devolverá true.

meta ​

ts
function meta(): TaskMeta;

Metadatos personalizados que se adjuntaron a la prueba durante su ejecución. Los metadatos pueden adjuntarse asignando una propiedad al objeto ctx.task.meta durante la ejecución de una prueba:

ts
import { test } from 'vitest';

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

  task.meta.decorated = false;
});

Si la prueba no ha terminado de ejecutarse, el objeto de metadatos estará vacío.

result ​

ts
function result(): TestResult;

Resultados de la prueba. Si la prueba aún no ha terminado o acaba de ser recopilada, tendrá el valor TestResultPending:

ts
export interface TestResultPending {
  /**
   * La prueba se recopiló, pero aún no ha terminado de ejecutarse.
   */
  readonly state: 'pending';
  /**
   * Las pruebas en estado pendiente no tienen errores.
   */
  readonly errors: undefined;
}

Si la prueba fue omitida, el valor de retorno será TestResultSkipped:

ts
interface TestResultSkipped {
  /**
   * La prueba fue omitida con la bandera `skip` o `todo`.
   * Puedes ver cuál se utilizó en la opción `options.mode`.
   */
  readonly state: 'skipped';
  /**
   * Las pruebas omitidas no tienen errores.
   */
  readonly errors: undefined;
  /**
   * Una nota personalizada que se pasó a `ctx.skip(note)`.
   */
  readonly note: string | undefined;
}

TIP

Si la prueba se omitió porque otra prueba tiene la bandera only, options.mode será igual a skip.

Si la prueba falló, el valor de retorno será TestResultFailed:

ts
interface TestResultFailed {
  /**
   * La prueba falló al ejecutarse.
   */
  readonly state: 'failed';
  /**
   * Errores que se produjeron durante la ejecución de la prueba.
   */
  readonly errors: ReadonlyArray<TestError>;
}

Si la prueba pasó, el valor de retorno será TestResultPassed:

ts
interface TestResultPassed {
  /**
   * La prueba pasó con éxito.
   */
  readonly state: 'passed';
  /**
   * Errores que se lanzaron durante la ejecución de la prueba.
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

Ten en cuenta que una prueba con estado passed aún puede presentar errores adjuntos; esto puede ocurrir si retry se activó al menos una vez.

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

Información útil sobre la prueba, como la duración, el uso de memoria, etc.:

ts
interface TestDiagnostic {
  /**
   * Si la duración de la prueba supera `slowTestThreshold`.
   */
  readonly slow: boolean;
  /**
   * La memoria utilizada por la prueba en bytes.
   * Este valor solo está disponible si la prueba se ejecutó con la bandera `logHeapUsage`.
   */
  readonly heap: number | undefined;
  /**
   * El tiempo de ejecución de la prueba en ms.
   */
  readonly duration: number;
  /**
   * El tiempo de inicio de la prueba en ms.
   */
  readonly startTime: number;
  /**
   * El número de veces que se reintentó la prueba.
   */
  readonly retryCount: number;
  /**
   * El número de veces que se repitió la prueba según la opción `repeats`.
   * Este valor puede ser menor si la prueba falló durante la repetición y no se configuró `retry`.
   */
  readonly repeatCount: number;
  /**
   * Si la prueba pasó al segundo intento.
   */
  readonly flaky: boolean;
}

INFO

diagnostic() devolverá undefined si la prueba aún no se ha programado para ejecutarse.

Pager
AnteriorTestSpecification
SiguienteTestSuite

Publicado bajo la licencia MIT.

Copyright (c) 2021-Present Vitest Team

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

Publicado bajo la licencia MIT.

Copyright (c) 2021-Present Vitest Team