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

API Avanzate ​

WARNING

Questa guida elenca le API avanzate per eseguire i test tramite uno script Node.js. Se desideri semplicemente eseguire i test, probabilmente non ne hai bisogno. È principalmente utilizzata dagli autori di librerie.

Puoi importare qualsiasi metodo dall'entry-point vitest/node.

startVitest ​

ts
function startVitest(
  mode: VitestRunMode,
  cliFilters: string[] = [],
  options: CliOptions = {},
  viteOverrides?: ViteUserConfig,
  vitestOptions?: VitestOptions
): Promise<Vitest>;

Puoi iniziare a eseguire i test Vitest usando la sua API Node:

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

const vitest = await startVitest('test');

await vitest.close();

La funzione startVitest restituisce un'istanza Vitest se i test possono essere avviati.

Se la modalità watch non è abilitata, Vitest chiamerà automaticamente il metodo close.

Se la modalità watch è abilitata e il terminale supporta TTY, Vitest registrerà le scorciatoie della console.

Puoi passare una lista di filtri come secondo argomento. Vitest eseguirà solo i test i cui percorsi file contengono almeno una delle stringhe fornite.

Inoltre, puoi usare il terzo argomento per passare gli argomenti della CLI, che sovrascriveranno qualsiasi opzione di configurazione dei test. In alternativa, puoi passare la configurazione Vite completa come quarto argomento, che avrà la precedenza su qualsiasi altra opzione definita dall'utente.

Dopo aver eseguito i test, puoi ottenere i risultati tramite l'API state.getTestModules:

ts
import type { TestModule } from 'vitest/node';

const vitest = await startVitest('test');

console.log(vitest.state.getTestModules()); // [TestModule]

TIP

La guida "Esecuzione dei Test" contiene un esempio pratico.

createVitest ​

ts
function createVitest(
  mode: VitestRunMode,
  options: CliOptions,
  viteOverrides: ViteUserConfig = {},
  vitestOptions: VitestOptions = {}
): Promise<Vitest>;

Puoi creare un'istanza Vitest usando la funzione createVitest. Restituisce la stessa istanza Vitest di startVitest, ma non avvia i test né convalida i pacchetti installati.

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

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

TIP

La guida "Esecuzione dei Test" contiene un esempio pratico.

resolveConfig ​

ts
function resolveConfig(
  options: UserConfig = {},
  viteOverrides: ViteUserConfig = {}
): Promise<{
  vitestConfig: ResolvedConfig;
  viteConfig: ResolvedViteConfig;
}>;

Questo metodo permette di risolvere la configurazione con parametri personalizzati. Se non vengono forniti parametri, la radice sarà process.cwd().

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

// vitestConfig contiene solo le proprietà "test" risolte
const { vitestConfig, viteConfig } = await resolveConfig({
  mode: 'custom',
  configFile: false,
  resolve: {
    conditions: ['custom'],
  },
  test: {
    setupFiles: ['/my-setup-file.js'],
    pool: 'threads',
  },
});

INFO

A causa di come funziona createServer di Vite, Vitest deve effettuare la risoluzione della configurazione durante l'hook configResolve del plugin. Pertanto, questo metodo non è effettivamente utilizzato internamente ed è esposto esclusivamente come API pubblica.

Se passi la configurazione alle API startVitest o createVitest, Vitest risolverà comunque la configurazione nuovamente.

WARNING

resolveConfig non risolve i projects. Per risolvere le configurazioni dei progetti, Vitest ha bisogno di un server Vite stabilito.

Nota inoltre che viteConfig.test non verrà risolto completamente. Se hai bisogno della configurazione Vitest, usa vitestConfig invece.

parseCLI ​

ts
function parseCLI(
  argv: string | string[],
  config: CliParseOptions = {}
): {
  filter: string[];
  options: CliOptions;
};

Puoi utilizzare questo metodo per elaborare gli argomenti della CLI. Accetta una stringa (dove i parametri sono separati da un singolo spazio) o un array di stringhe di argomenti CLI nello stesso formato usato dalla CLI di Vitest. Restituisce un filtro e le opzioni che puoi successivamente passare ai metodi createVitest o startVitest.

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

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

result.options;
// {
//   coverage: { enabled: true },
//   browser: { name: 'chrome', enabled: true }
// }

result.filter;
// ['./files.ts']
Pager
Pagina successivaAPI di Vitest

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team