コンテンツへスキップ

テスト

要約

すべてのテストを実行し、スナップショットを自動的に更新するには、`just test-update` を実行します。

テストスイートは、Rust用とNode.js用の2つのグループがあります。

概要

  • `just test`:すべてのテストを実行します。
  • `just test-update`:すべてのテストを実行し、スナップショットを自動的に更新します。
  • `just test-rust`:すべてのRustテストを実行します。
  • `just test-node`:すべてのNode.jsテストを実行します。
  • `just test-node rolldown`:RolldownのNode.jsテストのみを実行します。
  • `just test-node rollup`:Rollupのテストのみを実行します。
  • `just update-esbuild-diff` または `just ued`:esbuildテストスイートのdiffを更新します。

Rustテスト

Rustのテストケースは、以下に格納されています。

  • /crates/rolldown/tests/esbuild
  • /crates/rolldown/tests/fixtures

テストケースの定義方法

テストケースは、`_config.json`を含むフォルダです。

`_config.json`には、テストスイートの設定が含まれています。すべてが正しく動作すれば、設定により、`_config.json`の編集中に自動補完が利用できるはずです。

利用可能なすべてのオプションについては、以下を参照してください。

Rustでの関数完全テスト

`_config.json`には制限があるため、Rustを使用して直接テストを作成することもできます。以下を参照してください。

スナップショットテスト

RolldownはRustのスナップショットテストにinstaを使用しています。以下を使用できます。

  • `cargo insta review`:新しいスナップショットを1つずつ確認します。
  • `cargo insta accept`:すべての新しいスナップショットを一度に承認します。

Node.jsテスト

ヒント

これらのテストを実行する前に、Node.jsバインディングをビルドすることを確認してください。

Node.js APIテスト

`packages/rolldown/tests`にあるテストは、RolldownのNode.js API(つまり、NPMで公開されている`rolldown`パッケージのAPI)をテストするために使用されます。

RolldownのNode.js APIをRollupのAPIと可能な限り一致させることを目標としており、テストを使用してAPIの整合性を検証し、進捗状況を追跡しています。現在、まだサポートされていないRollupオプションが多くあります。rollupから追加のオプションのサポートを実装した場合は、対応するテストケースを追加してください。

  • `just test-node rolldown`:rolldownテストを実行します。
  • `just test-node rolldown --update`:テストを実行し、スナップショットを更新します。

特定のファイルのテストの実行

特定のファイルのテストを実行するには、以下を使用できます。

シェル
just test-node rolldown test-file-name

たとえば、`fixture.test.ts`のテストを実行するには、`just test-node rolldown fixture`を使用します。

特定のテストの実行

特定のテストを実行するには、以下を使用できます。

シェル
just test-node rolldown -t test-name

`fixture.test.ts`のテスト名は、フォルダ名で定義されます。`tests/fixtures/resolve/alias`のテスト名は`resolve/alias`になります。

`tests/fixtures/resolve/alias`テストを実行するには、`just test-node rolldown -t resolve/alias`を使用します。

情報

  • `just test-node rolldown -t aaa bbb`と`just test-node rolldown -t "aaa bbb"`は異なります。前者は`aaa`または`bbb`を含むテストを実行しますが、後者は`aaa bbb`を含む名前のテストを実行します。

  • 詳細な使用方法については、https://vitest.dokyumento.jp/guide/filteringを参照してください。

Rollup動作との整合性テスト

Rollup独自のテストをRolldownに対して実行することにより、Rollupとの動作の整合性も目指しています。

これを実現するために、`packages/rollup-tests/test`の各テストケースは、プロジェクトルートの`rollup` gitサブモジュール内の対応するテストにプロキシします。

プロジェクトの設定時に`just init`を実行した後、gitサブモジュールは初期化されているはずですが、Rollupテストを実行する前に`just update`を実行してサブモジュールを更新する必要があります。

`/packages/rollup-tests`

  • `just test-node rollup`:rollupテストを実行します。
  • `just test-node rollup --update`:テストを実行し、テストの状態を更新します。

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