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リファレンス

このページの内容

TestSuite ​

TestSuite クラスは単一のテストスイートを表します。このクラスはメインスレッドでのみ利用可能です。ランタイムタスクを扱っている場合は、「Runner API」を参照してください。

TestSuite インスタンスは常に suite の値を持つ type プロパティを持ちます。これを使用して、異なるタスクタイプを区別できます。

ts
if (task.type === 'suite') {
  task; // TestSuite
}

project ​

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

module ​

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

name ​

describe 関数に渡されたスイート名です。

ts
import { describe } from 'vitest';

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

fullName ​

すべての親スイートを > 記号で区切って含むスイートの完全名です。このスイートのフルネームは "the validation logic > validating cities" となります。

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

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

id ​

スイートの一意の識別子です。この ID は決定的であり、複数回の実行で同じスイートに対して同じ値になります。ID は、プロジェクト名、モジュール ID、スイートの順序に基づいています。

ID の例:

1223128da3_0_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 { describe } from 'vitest'

describe('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';
}

スイートが収集されたオプションです。

children ​

これは、現在のスイート内のすべてのスイートとテストのコレクションです。

ts
for (const task of suite.children) {
  if (task.type === 'test') {
    console.log('test', task.fullName);
  } else {
    // task is TaskSuite
    console.log('suite', task.name);
  }
}

WARNING

suite.children は最初のネストレベルのみを反復し、それ以上深くは進まないことに注意してください。すべてのテストまたはスイートを反復する必要がある場合は、children.allTests() または children.allSuites() を使用してください。すべてを反復する必要がある場合は、再帰関数を使用してください。

ts
function visit(collection: TestCollection) {
  for (const task of collection) {
    if (task.type === 'suite') {
      // スイートを報告
      visit(task.children);
    } else {
      // テストを報告
    }
  }
}

ok ​

ts
function ok(): boolean;

スイートに失敗したテストがあるかどうかをチェックします。スイートが収集中に失敗した場合も false を返します。その場合、スローされたエラーについては errors() を確認してください。

state ​

ts
function state(): TestSuiteState;

スイートの実行状態をチェックします。可能な戻り値は次のとおりです。

  • pending: このスイート内のテストはまだ実行が完了していません。
  • failed: このスイートには失敗したテストがあるか、収集できませんでした。errors() が空でない場合、スイートがテストの収集に失敗したことを意味します。
  • passed: このスイート内のすべてのテストが合格しました。
  • skipped: このスイートは収集中にスキップされました。

WARNING

テストモジュールにも同じ値を返す state メソッドがありますが、モジュールがまだ実行されていない場合は、追加の queued 状態を返すこともできることに注意してください。

errors ​

ts
function errors(): TestError[];

構文エラーなど、テスト実行外で収集中に発生したエラーです。

ts
import { describe } from 'vitest';

describe('collection failed', () => {
  throw new Error('a custom error');
});

WARNING

エラーは単純なオブジェクトにシリアル化されるため、instanceof Error は常に false を返すことに注意してください。

meta 3.1.0+ ​

ts
function meta(): TaskMeta;

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

ts
import { test } from 'vitest';

describe('the validation works correctly', task => {
  // 収集中に "decorated" を割り当て
  task.meta.decorated = false;

  test('some test', ({ task }) => {
    // テスト実行中に "decorated" を割り当て。
    // これは onTestCaseReady フックでのみ利用可能になります。
    task.suite.meta.decorated = false;
  });
});

TIP

メタデータが収集中(test 関数の外)にアタッチされた場合、カスタムレポーターの onTestModuleCollected フックで利用可能になります。

Pager
前のページTestCase
次のページTestModule

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

Copyright (c) 2021-Present Vitest Team

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

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

Copyright (c) 2021-Present Vitest Team