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

assert

assertType

設定

Vitestの設定ファイル管理

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
/// <reference types="vitest" />
import { defineConfig } from 'vite';

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

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

プロダクションビルド ​

プロダクションビルドでは、設定ファイルで define オプションを設定し、バンドラーに不要なコードの削除(デッドコードエリミネーション)を実行させる必要があります。たとえば、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', 
  }, 
});

その他のバンドラー ​

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

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

詳細については: unbuild

rollup
ts
// rollup.config.js
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
// tsconfig.json
{
  "compilerOptions": {
    "types": [
      "vitest/importMeta"
    ]
  }
}

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

注意点 ​

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

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

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

Pager
前のページブラウザモード
次のページテストコンテキスト

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

Copyright (c) 2024 Mithril Contributors

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

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

Copyright (c) 2024 Mithril Contributors