Skip to content
Vitest 3
Main Navigation Guida & APIConfigurazioneModalità BrowserAPI avanzata
3.2.0
2.1.9
1.6.1
0.34.6

Italiano

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

Italiano

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

Aspetto

Sidebar Navigation

API

Node API

API Avanzate

API di Vitest

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API dei Plugin

API del Runner

Reporter

Metadati del Task

Guida

Esecuzione dei Test

Estensione dei Reporter

Pool Personalizzato

Configurazione di Vitest

Riferimento API di test

In questa pagina

TestCase ​

La classe TestCase rappresenta un'unità di test. Questa classe è disponibile esclusivamente sul thread principale. Per maggiori dettagli, si prega di consultare la sezione "Runner API" se si sta lavorando con i task di runtime.

L'istanza TestCase possiede sempre una proprietà type con il valore 'test'. Questa può essere utilizzata per distinguere tra i vari tipi di task:

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

project ​

Si riferisce al TestProject a cui il test appartiene.

module ​

È un riferimento diretto al TestModule in cui il test è definito.

name ​

È il nome del test, come passato alla funzione test.

ts
import { test } from 'vitest';

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

fullName ​

Il nome completo del test, che include tutte le suite genitore, separate dal simbolo >. Il nome completo di questo test è "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 ​

È l'identificatore univoco del test. Questo identificatore è deterministico e rimarrà invariato per lo stesso test in esecuzioni multiple. L'ID è basato sul nome del progetto, sull'ID del modulo e sull'ordine di esecuzione del test.

L'ID si presenta come segue:

1223128da3_0_0
^^^^^^^^^^ hash del file
           ^ indice della suite
             ^ indice del test

TIP

È possibile generare l'hash del file utilizzando la funzione generateFileHash dal modulo vitest/node, disponibile a partire da Vitest 3:

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

const hash = generateFileHash(
  '/file/path.js', // percorso relativo
  undefined // il nome del progetto o `undefined` se non specificato
);

DANGER

Non tentare di analizzare l'ID. Potrebbe iniziare con un segno meno: -1223128da3_0_0_0.

location ​

La posizione all'interno del modulo in cui il test è stato definito. Le posizioni vengono raccolte solo se includeTaskLocation è abilitato nella configurazione. Si noti che questa opzione è automaticamente abilitata se vengono utilizzati i flag --reporter=html, --ui o --browser.

La posizione di questo test sarà { line: 3, column: 1 }:

ts
import { test } from 'vitest'

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

parent ​

La Suite genitore. Se il test è stato chiamato direttamente all'interno del modulo, il genitore sarà il modulo stesso.

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';
}

Le opzioni con cui il test è stato raccolto.

ok ​

ts
function ok(): boolean;

Verifica che il test non abbia causato il fallimento della suite. Se il test non è ancora terminato o è stato saltato, restituirà true.

meta ​

ts
function meta(): TaskMeta;

Metadati personalizzati che sono stati allegati al test durante la sua esecuzione. I metadati possono essere allegati assegnando una proprietà all'oggetto ctx.task.meta durante l'esecuzione di un test:

ts
import { test } from 'vitest';

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

  task.meta.decorated = false;
});

Se il test non ha ancora terminato l'esecuzione, i metadati saranno un oggetto vuoto.

result ​

ts
function result(): TestResult;

I risultati del test. Se il test non è ancora terminato o è stato appena raccolto, il risultato sarà TestResultPending:

ts
export interface TestResultPending {
  /**
   * Il test è stato raccolto, ma non ha ancora terminato l'esecuzione.
   */
  readonly state: 'pending';
  /**
   * I test in sospeso non presentano errori.
   */
  readonly errors: undefined;
}

Se il test è stato saltato, il valore restituito sarà TestResultSkipped:

ts
interface TestResultSkipped {
  /**
   * Il test è stato saltato tramite il flag `skip` o `todo`.
   * È possibile verificare quale sia stato utilizzato nell'opzione `options.mode`.
   */
  readonly state: 'skipped';
  /**
   * I test saltati non presentano errori.
   */
  readonly errors: undefined;
  /**
   * Una nota personalizzata passata a `ctx.skip(note)`.
   */
  readonly note: string | undefined;
}

TIP

Se il test è stato saltato perché un altro test presenta il flag only, options.mode sarà uguale a skip.

Se il test è fallito, il valore restituito sarà TestResultFailed:

ts
interface TestResultFailed {
  /**
   * Il test non è riuscito a essere eseguito.
   */
  readonly state: 'failed';
  /**
   * Errori che sono stati lanciati durante l'esecuzione del test.
   */
  readonly errors: ReadonlyArray<TestError>;
}

Se il test è passato, il valore restituito sarà TestResultPassed:

ts
interface TestResultPassed {
  /**
   * Il test è passato con successo.
   */
  readonly state: 'passed';
  /**
   * Errori che sono stati lanciati durante l'esecuzione del test.
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

Si noti che un test con stato 'passed' può comunque presentare errori allegati; ciò può accadere se il meccanismo di retry è stato attivato almeno una volta.

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

Informazioni utili sul test, come durata, utilizzo della memoria, ecc.:

ts
interface TestDiagnostic {
  /**
   * Indica se la durata del test è superiore a `slowTestThreshold`.
   */
  readonly slow: boolean;
  /**
   * La quantità di memoria utilizzata dal test in byte.
   * Questo valore è disponibile solo se il test è stato eseguito con il flag `logHeapUsage`.
   */
  readonly heap: number | undefined;
  /**
   * Il tempo impiegato per eseguire il test in ms.
   */
  readonly duration: number;
  /**
   * Il tempo in ms in cui il test è iniziato.
   */
  readonly startTime: number;
  /**
   * Il numero di volte in cui il test è stato ritentato.
   */
  readonly retryCount: number;
  /**
   * Il numero di volte in cui il test è stato ripetuto, come configurato dall'opzione `repeats`.
   * Questo valore può essere inferiore se il test è fallito durante la ripetizione e non è stato configurato alcun tentativo di `retry`.
   */
  readonly repeatCount: number;
  /**
   * Indica se il test è passato al secondo tentativo.
   */
  readonly flaky: boolean;
}

INFO

diagnostic() restituirà undefined se il test non è ancora stato programmato per l'esecuzione.

Pager
Pagina precedenteTestSpecification
Pagina successivaTestSuite

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team

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

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team