注意:
tests/webpack-test
完全基于 webpack/test
在迁移 webpack 测试的过程中,我们使用以下公式来计算兼容性:passedTestCaseCount / totalTestCount
,其中 totalTestCount = passedTestCaseCount + failedTestCount + skippedTestCount
。
但是有时由于一些原因(例如性能、部分历史遗留功能),可能很难与所有的 webpack 测试用例保持兼容。因此,我们需要一种方法来跳过这些不希望支持的测试用例。我们将原始公式调整为 (passedTestCaseCount + willNotSupportTestCount) / totalTestCount
。
目前,可在用例目录下添加 test.filter.js
文件,用于跳过失败的测试用例。使得我们可以逐步迁移 webpack 测试用例,而不影响实际的兼容性(因为这种方法不影响真实的 passedTestCaseCount
)。
例如:
如果您发现测试用例已可以通过,那么将 test.filter.js
更改为:
或者直接删除 test.filter.js
文件。
基于实现差异和性能考虑,Rspack 会将部分 Webpack 生态插件内置。同样会将插件的测试套件复制到 tests/plugin-test
文件夹下,用于测试插件的兼容性。
因此,为了保持这些测试用例与其原仓库的一致性,不建议对测试用例进行修改,仅当如下场景满足时可变更:
非以上场景时,请遵循 Rspack 测试 添加测试用例
可以通过如下方式运行这些测试用例:
./x test plugin
或 pnpm run test:plugin
。tests/plugin-test
目录下运行 npm run test
。tests/plugin-test
目录下运行 npm run test -- -u
。tests/plugin-test
目录下运行 npm run test -- {args}
。tests/plugin-test/{插件名}
文件夹,并将该插件的测试用例复制到该文件夹中。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
全局变量判断是否刷新 snapshottests/plugin-test/{插件名}/README.md
文件,添加测试用例来源仓库的 License 信息。tests/plugin-test/README.md
文件,添加测试用例来源仓库的链接和感谢信息。