Skip to content
Vitest 2
Main Navigation PrůvodceAPIKonfiguraceRežim prohlížečePokročilý
2.1.9
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

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

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

Profiling Test Performance

Zvýšení výkonu

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.

WARNING

Tento průvodce vysvětluje, jak psát testy uvnitř vašeho zdrojového kódu. Pokud potřebujete psát testy v samostatných souborech testů, postupujte podle průvodce "Psaní testů".

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
// vitest.config.ts
import { defineConfig } from 'vitest/config';

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
// vitest.config.ts
import { defineConfig } from 'vitest/config';

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 examples/in-source-test.

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ánkaVitest UI
Další stránkaKontext testu

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors

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

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors