Skip to content
Vitest 0
Main Navigation ガイドAPI設定高度な
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 UI

ブラウザモード(実験的)

ソース内テスト

テストコンテキスト

テスト環境

マッチャー拡張

IDE連携機能

デバッグ

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

移行ガイド

よくあるエラー

API

テスト API リファレンス

モック関数

Vi

expect

expectTypeOf

assertType

設定

Vitest の設定

このページの内容

ソース内テスト ​

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

これにより、テストは実装と同じスコープを共有し、エクスポートされていないプライベートな変数もテストできます。また、開発におけるフィードバックループをより緊密にすることができます。

セットアップ ​

ソースファイルの一番下に if (import.meta.vitest) ブロックを配置し、その中にテストを記述します。以下に例を示します。

ts
// src/index.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 の includeSource 設定を更新して、src/ ディレクトリ以下のファイルをテスト対象に含めます。

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

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

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

プロダクションビルド ​

プロダクションビルドでは、設定ファイルで define オプションを設定し、バンドラーに不要なコードの削除(デッドコードエリミネーション)を実行させる必要があります。たとえば、Vite では次のようになります。

diff
// vite.config.ts
import { defineConfig } from 'vitest/config'

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

その他のバンドラー ​

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

export default defineBuildConfig({
+ replace: {
+   'import.meta.vitest': 'undefined',
+ },
  // その他のオプション
})

詳細については: unbuild

rollup
diff
// rollup.config.js
+ import replace from '@rollup/plugin-replace'

export default {
  plugins: [
+   replace({
+     'import.meta.vitest': 'undefined',
+   })
  ],
  // その他のオプション
}

詳細については: rollup

TypeScript ​

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

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

完全な例は、test/import-meta を参照してください。

注意点 ​

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

  • 小規模な関数やユーティリティのユニットテスト
  • プロトタイピング
  • インラインアサーション

コンポーネントテストや E2E テストなど、より複雑なテストを行う場合は、個別のテストファイルを使用することを推奨します。

Pager
前のページブラウザモード(実験的)
次のページテストコンテキスト

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

Copyright (c) 2024 Mithril Contributors

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

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

Copyright (c) 2024 Mithril Contributors