Skip to content
Vitest 1
Main Navigation GuidaAPIConfigurazioneAvanzato
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

Guida

Perché Vitest

Introduzione

Funzionalità

Workspace

Interfaccia a riga di comando

Filtro dei test

Reporter

Coverage

Snapshot

Mocking

Test dei Tipi

Interfaccia Utente di Vitest

Modalità Browser

Test nel codice sorgente

Contesto del Test

Ambienti di Test

Estensione dei Matchers

Integrazione con gli IDE

Debugging

Confronti con altri Test Runner

Guida alla Migrazione

Errori Frequenti

Ottimizzare le Prestazioni

API

Riferimento API Test

Funzioni Mock

Vi

expect

expectTypeOf

assert

assertType

Configurazione

Gestione del file di configurazione di Vitest

Configurazione di Vitest

In questa pagina

Test nel codice sorgente ​

Vitest offre un modo per eseguire i test direttamente all'interno del codice sorgente, affiancati all'implementazione, in modo simile ai test di modulo di Rust.

Questo approccio permette ai test di condividere lo stesso contesto delle implementazioni. In questo modo, è possibile testare stati privati senza doverli esportare. Allo stesso tempo, offre un feedback più immediato durante lo sviluppo.

Configurazione ​

Per iniziare, inserisci un blocco if (import.meta.vitest) alla fine del tuo file sorgente e scrivi alcuni test al suo interno. Ad esempio:

ts
// src/index.ts

// the implementation (l'implementazione)
export function add(...args: number[]) {
  return args.reduce((a, b) => a + b, 0);
}

// in-source test suites (suite di test in-source)
if (import.meta.vitest) {
  const { it, expect } = import.meta.vitest;
  it('add', () => {
    expect(add()).toBe(0);
    expect(add(1)).toBe(1);
    expect(add(1, 2, 3)).toBe(6);
  });
}

Aggiorna la configurazione includeSource per Vitest per includere i file nella directory src/:

ts
// vite.config.ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'], 
  },
});

A questo punto è possibile eseguire i test!

bash
$ npx vitest

Build di produzione ​

Per la build di produzione, è necessario impostare le opzioni define nel file di configurazione, consentendo al bundler di eseguire l'eliminazione del codice inutilizzato (dead code elimination). Ad esempio, in Vite:

ts
// vite.config.ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'],
  },
  define: {
    'import.meta.vitest': 'undefined', 
  }, 
});

Altri Bundler ​

unbuild
ts
// build.config.ts
import { defineBuildConfig } from 'unbuild';

export default defineBuildConfig({
  replace: {
    'import.meta.vitest': 'undefined', 
  }, 
  // other options
});

Learn more: unbuild

rollup
ts
// rollup.config.js
import replace from '@rollup/plugin-replace'; 

export default {
  plugins: [
    replace({
      'import.meta.vitest': 'undefined', 
    }), 
  ],
  // other options
};

Learn more: Rollup

TypeScript ​

Per abilitare il supporto TypeScript per import.meta.vitest, aggiungi vitest/importMeta al tuo file tsconfig.json:

json
// tsconfig.json
{
  "compilerOptions": {
    "types": [
      "vitest/importMeta"
    ]
  }
}

Si veda test/import-meta per un esempio completo.

Note ​

Questa funzionalità può essere utile per:

  • Test unitari per funzioni o utility di piccole dimensioni
  • Prototipazione rapida
  • Asserzioni inline

Si consiglia di utilizzare file di test separati per test più complessi, come quelli relativi a componenti o test end-to-end.

Pager
Pagina precedenteModalità Browser
Pagina successivaContesto del Test

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/in-source

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors