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

API

Node API

上級者向けAPI

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

プラグイン API

Runner API

レポーター

タスクのメタデータ

ガイド

テストの実行

レポーターの拡張

カスタムプール

Vitest の設定

テストAPIリファレンス

このページの内容

TestCase ​

TestCase クラスは単一のテストを表します。このクラスはメインスレッドでのみ使用可能です。ランタイムタスクの取り扱いについては、「Runner API」を参照してください。

TestCase インスタンスは常に test の値を持つ type プロパティを持ちます。これにより、異なるタスクタイプを区別できます。

ts
if (task.type === 'test') {
  task; // TestCase
}

project ​

テストが属する TestProject を指します。

module ​

テストが定義されている TestModule への直接的な参照です。

name ​

test 関数に渡されたテストの名前です。

ts
import { test } from 'vitest';

// [!code word:'the validation works correctly']
test('the validation works correctly', () => {
  // ...
});

fullName ​

すべての親スイートを > 記号で区切ったテストの完全な名前です。このテストのフルネームは "the validation logic > the validation works correctly" となります。

ts
import { describe, test } from 'vitest';

// [!code word:'the validation works correctly']
// [!code word:'the validation logic']
describe('the validation logic', () => {
  test('the validation works correctly', () => {
    // ...
  });
});

id ​

テストのユニークな識別子です。このIDは決定的であり、複数回実行しても同じテストであれば常に同じ値になります。IDはプロジェクト名、モジュールID、テストの順序に基づいて生成されます。

IDの例:

1223128da3_0_0
^^^^^^^^^^ ファイルハッシュ
           ^ スイートインデックス
             ^ テストインデックス

TIP

Vitest 3以降では、vitest/node の generateFileHash 関数を使用してファイルハッシュを生成できます。

ts
import { generateFileHash } from 'vitest/node';

const hash = generateFileHash(
  '/file/path.js', // 相対パス
  undefined // プロジェクト名(設定されていない場合は `undefined`)
);

DANGER

IDを解析しようとしないでください。先頭にマイナス記号が付く場合があります: -1223128da3_0_0_0。

location ​

テストが定義されたモジュール内の位置情報です。この位置情報は、設定で includeTaskLocation が有効になっている場合にのみ収集されます。このオプションは、--reporter=html、--ui、または --browser フラグが使用されている場合、自動的に有効になります。

このテストの場所は { line: 3, column: 1 } となります。

ts
import { test } from 'vitest'

test('the validation works correctly', () => {
  // ...
})
1
2
3
4
5

parent ​

親のスイートです。テストがモジュール内で直接呼び出された場合、親はモジュール自体になります。

options ​

ts
interface TaskOptions {
  readonly each: boolean | undefined;
  readonly fails: boolean | undefined;
  readonly concurrent: boolean | undefined;
  readonly shuffle: boolean | undefined;
  readonly retry: number | undefined;
  readonly repeats: number | undefined;
  readonly mode: 'run' | 'only' | 'skip' | 'todo';
}

テスト収集時のオプションです。

ok ​

ts
function ok(): boolean;

テストがスイート内で失敗しなかったかどうかを確認します。テストがまだ完了していないか、スキップされた場合は true を返します。

meta ​

ts
function meta(): TaskMeta;

テストの実行中にテストにアタッチされたカスタムメタデータです。メタデータは、テスト実行中に ctx.task.meta オブジェクトにプロパティを割り当てることで、テストにアタッチできます。

ts
import { test } from 'vitest';

test('the validation works correctly', ({ task }) => {
  // ...

  task.meta.decorated = false;
});

テストがまだ実行を完了していない場合、メタデータは空のオブジェクトになります。

result ​

ts
function result(): TestResult;

テスト結果です。テストがまだ完了していないか、収集されたばかりの場合、TestResultPending を返します。

ts
export interface TestResultPending {
  /**
   * テストは収集済みですが、まだ実行が完了していません。
   */
  readonly state: 'pending';
  /**
   * 保留中のテストにはエラーは含まれません。
   */
  readonly errors: undefined;
}

テストがスキップされた場合、戻り値は TestResultSkipped になります。

ts
interface TestResultSkipped {
  /**
   * テストは `skip` または `todo` フラグによってスキップされました。
   * どちらが使用されたかは `options.mode` オプションで確認できます。
   */
  readonly state: 'skipped';
  /**
   * スキップされたテストにはエラーは含まれません。
   */
  readonly errors: undefined;
  /**
   * `ctx.skip(note)` に渡すことができるカスタムノートです。
   */
  readonly note: string | undefined;
}

TIP

別のテストに only フラグがあるためにテストがスキップされた場合でも、options.mode は skip になります。

テストが失敗した場合、戻り値は TestResultFailed になります。

ts
interface TestResultFailed {
  /**
   * テストの実行に失敗しました。
   */
  readonly state: 'failed';
  /**
   * テスト実行中にスローされたエラーです。
   */
  readonly errors: ReadonlyArray<TestError>;
}

テストが成功した場合、戻り値は TestResultPassed になります。

ts
interface TestResultPassed {
  /**
   * テストが正常にパスしました。
   */
  readonly state: 'passed';
  /**
   * テスト実行中にスローされたエラーです。
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

passed 状態のテストでもエラーがアタッチされる場合があることに注意してください。これは、retry が少なくとも1回トリガーされた場合に発生する可能性があります。

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

テストに関する有用な情報(実行時間やメモリ使用量など)を提供します。

ts
interface TestDiagnostic {
  /**
   * テストの実行時間が `slowTestThreshold` を超えているかどうか。
   */
  readonly slow: boolean;
  /**
   * テストで使用したメモリ量(バイト)。
   * この値は、テストが `logHeapUsage` フラグを付けて実行された場合にのみ利用可能です。
   */
  readonly heap: number | undefined;
  /**
   * テストの実行にかかった時間(ミリ秒)。
   */
  readonly duration: number;
  /**
   * テストが開始された時間(ミリ秒)。
   */
  readonly startTime: number;
  /**
   * テストがリトライされた回数です。
   */
  readonly retryCount: number;
  /**
   * `repeats` オプションで設定された、テストが繰り返された回数です。
   * テストが繰り返し中に失敗し、`retry` が設定されていない場合、この値は少なくなる可能性があります。
   */
  readonly repeatCount: number;
  /**
   * テストが2回目のリトライでパスしたかどうか。
   */
  readonly flaky: boolean;
}

INFO

diagnostic() は、テストがまだ実行される予定がない場合、undefined を返します。

Pager
前のページTestSpecification
次のページTestSuite

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/api/test-case

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

Copyright (c) 2021-Present Vitest Team