注記:
tests/webpack-testは webpack/test をベースとしています。
当初、互換性を計算する式は passedTestCaseCount / totalTestCount (totalTestCount = passedTestCaseCount + failedTestCount + skippedTestCount)でしたが、パフォーマンスやサポート対象外とするレガシー機能など、様々な理由から全てのWebpackテストケースとの互換性を確保することが困難な場合があります。そのため、サポートしないテストをスキップするメカニズムが必要となり、元の式を(passedTestCaseCount + willNotSupportTestCount) / totalTestCountに変更しました。
現在、失敗したテストケースディレクトリの下にあるtest.filter.jsを使用して、失敗したテストケースをスキップしています。この方法により、(実際のpassedTestCaseCountに影響を与えないため)実際の互換性に影響を与えることなく、Webpackテストケースを段階的に移行できます。
例:
現在スキップされている失敗したテストケースがパスしたことが判明した場合、test.filter.jsを以下のように変更できます。
または、test.filter.jsを削除します。
実装の違いとパフォーマンスの考慮事項に基づき、Rspackは一部のWebpackプラグインを内部的に統合します。プラグインの互換性テストのため、プラグインのテストスイートもtests/plugin-testフォルダにコピーされます。
そのため、元のレポジトリとの整合性を保つため、以下のシナリオを除き、これらのテストケースを変更することは推奨されません。
上記以外のシナリオでは、テストケースの追加についてはRspackテストガイドラインに従ってください。
これらのテストケースは、以下の方法で実行できます。
./x test pluginまたはpnpm run test:pluginを実行します。rspack/tests/plugin-testディレクトリでnpm run testを実行します。tests/plugin-testディレクトリでnpm run test -- -uを実行します。tests/plugin-testディレクトリでnpm run test -- {args}を実行します。tests/plugin-test/{plugin-name}フォルダを作成し、そのプラグインのテストケースをフォルダにコピーします。tests/plugin-test/jest.config.jsのテスト設定を調整します。特別な設定が必要な場合は、以下の手順に従います。
tests/plugin-test/jest.{plugin-name}.config.jsを作成し、jest.config.jsをインポートして、それに基づいて変更します。tests/plugin-test/package.jsonのscriptsプロパティにtest:{plugin-name}コマンドを追加します。global.updateSnapshotを使用してスナップショットを更新するかどうかを決定します。tests/plugin-test/{plugin-name}/README.mdファイルを追加し、テストケースのソースレポジトリからライセンス情報を記載します。tests/plugin-test/README.mdファイルを更新し、テストケースのソースレポジトリからのリンクとクレジット情報を追加します。