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

このページの内容

上級者向けAPI ​

WARNING

このガイドでは、Node.jsスクリプトからテストを実行するための上級者向けAPIを解説します。単にテストを実行したいだけであれば、これらのAPIは通常必要ありません。これらは主にライブラリの作者が利用することを想定しています。

vitest/nodeエントリーポイントから、以下の任意のメソッドをインポートして使用できます。

startVitest ​

ts
function startVitest(
  mode: VitestRunMode,
  cliFilters: string[] = [],
  options: CliOptions = {},
  viteOverrides?: ViteUserConfig,
  vitestOptions?: VitestOptions
): Promise<Vitest>;

VitestのNode APIを使用して、Vitestテストの実行を開始できます。

js
import { startVitest } from 'vitest/node';

const vitest = await startVitest('test');

await vitest.close();

startVitest関数は、テストの開始に成功した場合、Vitestインスタンスを返します。

ウォッチモードが有効になっていない場合、Vitestは自動的にcloseメソッドを呼び出します。

ウォッチモードが有効で、ターミナルがTTYをサポートしている場合、Vitestはコンソールショートカットを設定します。

2番目の引数としてフィルターのリストを渡すことができます。Vitestは、ファイルパスに渡された文字列のいずれかを含むテストのみを実行します。

さらに、3番目の引数を使用してCLI引数を渡すことができ、これにより任意のテスト設定オプションを上書きできます。あるいは、4番目の引数として完全なVite設定を渡すこともでき、これは他のユーザー定義オプションよりも優先されます。

テストを実行した後、state.getTestModules APIから結果を取得できます。

ts
import type { TestModule } from 'vitest/node';

const vitest = await startVitest('test');

console.log(vitest.state.getTestModules()); // [TestModule]

TIP

「テストの実行」ガイド("Running Tests")に利用例があります。

createVitest ​

ts
function createVitest(
  mode: VitestRunMode,
  options: CliOptions,
  viteOverrides: ViteUserConfig = {},
  vitestOptions: VitestOptions = {}
): Promise<Vitest>;

createVitest関数を使用してVitestインスタンスを作成できます。これはstartVitestと同じVitestインスタンスを返しますが、テストは開始せず、インストール済みパッケージの検証も行いません。

js
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});

TIP

「テストの実行」ガイド("Running Tests")に利用例があります。

resolveConfig ​

ts
function resolveConfig(
  options: UserConfig = {},
  viteOverrides: ViteUserConfig = {}
): Promise<{
  vitestConfig: ResolvedConfig;
  viteConfig: ResolvedViteConfig;
}>;

このメソッドは、指定されたカスタムパラメータを使用して設定を解決します。パラメータが指定されていない場合、rootにはprocess.cwd()が使用されます。

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

// vitestConfigには解決済みの"test"プロパティのみが含まれます
const { vitestConfig, viteConfig } = await resolveConfig({
  mode: 'custom',
  configFile: false,
  resolve: {
    conditions: ['custom'],
  },
  test: {
    setupFiles: ['/my-setup-file.js'],
    pool: 'threads',
  },
});

INFO

ViteのcreateServerの動作原理により、VitestはプラグインのconfigResolveフック内で設定を解決する必要があります。したがって、このメソッドは実際には内部では使用されず、公開APIとしてのみ提供されています。

startVitestまたはcreateVitest APIに設定を渡した場合でも、Vitestは再度設定を解決します。

WARNING

resolveConfigはprojectsを解決しません。プロジェクトの設定を解決するには、Vitestは構築済みのViteサーバーが必要です。

さらに、viteConfig.testは完全には解決されない点に注意してください。Vitestの設定が必要な場合は、代わりにvitestConfigを使用してください。

parseCLI ​

ts
function parseCLI(
  argv: string | string[],
  config: CliParseOptions = {}
): {
  filter: string[];
  options: CliOptions;
};

このメソッドを使用してCLI引数を解析できます。これは、文字列(引数が単一のスペースで区切られたもの)またはVitest CLIが使用するのと同じ形式のCLI引数の文字列配列を受け入れます。このメソッドは、後でcreateVitestまたはstartVitestメソッドに渡すためのフィルターとoptionsを返します。

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

const result = parseCLI('vitest ./files.ts --coverage --browser=chrome');

result.options;
// {
//   coverage: { enabled: true },
//   browser: { name: 'chrome', enabled: true }
// }

result.filter;
// ['./files.ts']
Pager
次のページVitest API

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/

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

Copyright (c) 2021-Present Vitest Team