Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

分離と並行実行

最終更新 Markdown で表示Agent セットアップ

Workers の Vitest 連携がテストをどう実行するか、テスト同士をどう分離するか、モジュールをどうインポートするかを確認します。

テストの実行

Workers の Vitest 連携でテストを実行すると、Vitest は次の処理を行います。

  1. Node.js で設定ファイルを読み込み、評価します。
  2. Node.js で globalSetup ファイルがあれば実行します。
  3. テストファイルを収集し、順序を決めます。
  4. 各 Vitest プロジェクトについて、設定された分離と並行実行に応じて、1 つ以上の workerd プロセスを起動します。各プロセスは 1 つ以上の Worker を実行します。
  5. workerd 内の適切な Worker で setupFiles とテストファイルを実行します。
  6. 変更を監視し、設定が変わっていなければ、同じ Worker でテストファイルを再実行します。

分離モデル

ストレージの分離はテストファイル単位です。各テストファイルは独自のストレージ環境を持ち、テストファイル中のストレージへの書き込みは、ほかのテストファイルからは見えません。Workers の Vitest 連携は、可能な場合、テスト実行間で Worker とそのモジュールキャッシュを再利用します。補助の workers のコピーは、各 workerd プロセスに存在します。

デフォルトでは、テストファイルは並行して実行されます。テストファイルで同じストレージを共有するには(たとえば、共有状態に依存する統合テスト)、Vitest のフラグ --max-workers=1 --no-isolate を使います。

モジュール

各 Worker は独自のモジュールキャッシュを持ちます。Worker はテスト実行間で再利用されるため、モジュールキャッシュも再利用されます。Vitest は、変更されたファイルに基づき、各テスト実行の開始時にモジュールキャッシュの一部を無効化します。

Workers Vitest プラグインは、通常なら Node.js の Worker スレッド 内で動く Vitest のコードを、Cloudflare Worker 内で実行します。これを可能にするため、プラグインは nodejs_compat、[no_nodejs_compat_v2] および export_commonjs_default の互換性フラグを 自動注入 します。これは Vitest を正しく動かすための最小構成であり、不要なポリフィルやグローバルは取り込みません。設定にすでに Node.js 互換性フラグがある場合、Vitest プラグインはこれらのフラグを追加しません。

役に立ちましたか?