Skip to content
Vitest 1
Main Navigation PrůvodceAPIKonfiguracePokročilý
1.6.1
0.34.6

čeština

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

čeština

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

Vzhled

Sidebar Navigation

Průvodce

Proč Vitest

Začínáme

Funkce

Workspace

Rozhraní příkazového řádku

Filtrování testů

Reportéři

Pokrytí

Snímky

Mockování

Testování typů

Vitest UI

Režim prohlížeče

Testování ve zdrojovém kódu

Kontext testu

Testovací prostředí

Rozšíření matcherů/porovnávačů

Integrace do IDE

Ladění

Srovnání s jinými testovacími nástroji

Průvodce migrací

Běžné chyby

Zvýšení výkonu

API

Referenční příručka k Test API

Mock funkce

Vi

expect

expectTypeOf

assert

assertType

Konfigurace

Správa konfiguračního souboru pro Vitest

Konfigurace Vitest

Na této stránce

Testování ve zdrojovém kódu ​

Vitest umožňuje spouštět testy přímo ve zdrojovém kódu, vedle implementace, podobně jako modulové testy v Rustu.

Testy tak sdílejí stejný kontext (closure) jako implementace a mohou testovat privátní stavy bez nutnosti je exportovat. To také poskytuje rychlejší zpětnou vazbu během vývoje.

Nastavení ​

Vložte blok if (import.meta.vitest) na konec vašeho zdrojového souboru a do něj napište testy. Příklad:

ts
// src/index.ts

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

// testovací sady přímo ve zdrojovém kódu
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);
  });
}

Aktualizujte konfiguraci includeSource pro Vitest, aby zahrnovala soubory v adresáři src/.

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

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

Nyní můžete začít s testováním!

bash
$ npx vitest

Produkční sestavení (Production build) ​

Pro produkční sestavení je nutné nastavit volbu define v konfiguračním souboru, což umožní bundleru provést eliminaci nepoužívaného kódu (dead code elimination). Například ve 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', 
  }, 
});

Ostatní nástroje pro bundlování ​

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

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

Další informace: unbuild

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

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

Další informace: Rollup

TypeScript ​

Pro získání podpory TypeScriptu pro import.meta.vitest přidejte vitest/importMeta do pole types ve vašem souboru tsconfig.json.

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

Pro kompletní příklad navštivte test/import-meta.

Poznámky ​

Tato funkce se hodí pro:

  • Jednotkové testování malých funkcí nebo utilit
  • Rychlé prototypování
  • Vkládání jednoduchých asercí

Pro složitější testy, jako jsou testy komponent nebo E2E testy, doporučujeme používat samostatné testovací soubory.

Pager
Předchozí stránkaRežim prohlížeče
Další stránkaKontext testu

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors

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

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors