Skip to content
Vitest 3
Main Navigation ガイド & API設定ブラウザモード高度なAPI
3.2.0
2.1.9
1.6.1
0.34.6

日本語

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

日本語

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

外観

Sidebar Navigation

はじめに

Vitest を選ぶ理由

はじめに

機能

Vitest の設定

API

テストAPIリファレンス

モック関数

Vi

expect

expectTypeOf

assert

assertType

ガイド

コマンドラインインターフェース

テストフィルタリング

テストプロジェクト

レポーター

カバレッジ

スナップショット

モック

並列処理

型テスト

Vitest UI

インソース・テスト

テストコンテキスト

テストアノテーション

テスト環境

マッチャーの拡張

IDE統合

デバッグ

よくあるエラー

移行ガイド

Vitest 3.0 への移行

Jest からの移行

パフォーマンス

テストパフォーマンスのプロファイリング

パフォーマンスの向上

ブラウザーモード

上級者向けAPI

他のテストランナーとの比較

このページの内容

インソース・テスト ​

Vitestは、Rustのモジュールテストと同様に、実装と同時にソースコード内でテストを実行する方法を提供します。

このアプローチにより、テストは実装と同じクロージャを共有し、エクスポートされていないプライベートな状態もテストできます。さらに、開発時のフィードバックループも短縮されます。

WARNING

このガイドでは、ソースコード内にテストを記述する方法を説明します。テストを別のファイルに記述する必要がある場合は、「テストの記述」ガイド ("Writing Tests" guide) を参照してください。

セットアップ ​

開始するには、ソースファイルの最後にif (import.meta.vitest)ブロックを配置し、その中にテストを記述します。例:

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

// インソーステストスイート
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);
  });
}

Vitestがsrc/配下のファイルをテスト対象として認識するよう、includeSource設定を更新します。

ts
import { defineConfig } from 'vitest/config';

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

これでテストを実行できます。

bash
$ npx vitest

プロダクションビルド ​

本番ビルドでは、バンドラーによるデッドコード削除を有効にするため、設定ファイルにdefineオプションを設定する必要があります。例えば、Viteの場合は以下のようになります。

ts
/// <reference types="vitest/config" />

import { defineConfig } from 'vite'

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

その他のバンドラー ​

unbuild
ts
import { defineBuildConfig } from 'unbuild'

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

詳細情報:unbuild

Rollup
ts
import replace from '@rollup/plugin-replace'

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

詳細情報:Rollup

TypeScript ​

import.meta.vitestのTypeScriptサポートを有効にするには、tsconfig.jsonにvitest/importMetaを追加します。

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

完全な例については、examples/in-source-testを参照してください。

注意事項 ​

この機能は、以下のような場合に特に役立ちます。

  • スコープの小さい関数やユーティリティの単体テスト
  • プロトタイピング
  • インラインアサーション

コンポーネントやE2Eテストのようなより複雑なテストには、代わりに別のテストファイルを使用することをお勧めします。

Pager
前のページVitest UI
次のページテストコンテキスト

MITライセンス の下で公開されています。

Copyright (c) 2021-Present Vitest Team

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

MITライセンス の下で公開されています。

Copyright (c) 2021-Present Vitest Team