注記:
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
ファイルを更新し、テストケースのソースレポジトリからのリンクとクレジット情報を追加します。