測試

由於 Rspack 混合使用 Rust 和 Node.js 程式碼,因此每個程式碼都使用不同的測試策略。

Rust 測試

提示

Rust 測試案例僅適用於單元測試。若要測試完整的建置過程,請新增 Node.js 測試案例。

執行 Rust 測試

您可以使用 ./x test rustcargo test 來執行 Rust 程式碼的測試案例。

撰寫 Rust 測試

測試案例寫在 Rust 程式碼中。例如

fn add(a: u8, b: u8) -> u8 {
  a + b
}

#[test]
fn test_add() {
  assert_eq!(add(1, 2), 3);
}

如需更多資訊,請參閱:Rust:如何撰寫測試

Node.js 測試

Node.js 測試提供三個測試套件

  • Webpack 測試:使用 Rspack 執行 Webpack 測試案例
  • Webpack 外掛測試:使用 Rspack 執行原生支援外掛的測試案例
  • Rspack 測試:執行 Rspack 本身的測試案例

Webpack 測試

Rspack 將整個 Webpack 測試套件複製到 tests/webpack-test 資料夾中,以檢查 Webpack 的相容性。如果您需要新增新的測試案例,建議先檢查此資料夾中是否已存在該案例。您可以移除 test.filter.js 檔案或將其傳回值修改為 true,以啟用測試案例。

您可以在根資料夾中執行 ./x test webpackpnpm run test:webpack 來執行 Webpack 測試。

注意

如果您遇到任何問題,請勿修改 Webpack 測試案例的原始程式碼。您可以複製它,並按照Rspack 測試中的說明,在 packages/rspack-test-tools/tests 中建立新的測試案例。

如需更多詳細資訊,請參閱:Webpack 測試

Rspack 測試

Rspack 的測試案例儲存在 packages/rspack-test-tools/tests 資料夾中,包括獨特的測試案例,以及需要修改以適用於 Webpack 和 Webpack 外掛的案例。

您可以在根資料夾中執行 ./x test unitpnpm run test:unit 來執行 Rspack 測試。

您也可以前往 packages/rspack-test-tools 資料夾,執行 npm run test 來執行測試案例並新增一些引數

  • 當需要重新整理測試快照時:新增 -u,例如 npm run test -- -u
  • 當需要篩選測試案例時:新增 -t,例如 npm run test -- -t config/asset,僅執行來自 packages/rspack-test-tools/configCases/asset 資料夾的測試案例(config 會自動對應到 configCases,其他資料夾的工作方式類似)。模式比對支援 regex,詳情請參閱 jest

如需更多詳細資訊,請參閱:Rspack 測試

Webpack 外掛測試

由於實作差異和效能考量,Rspack 將在內部支援一些 Webpack 外掛。同樣地,這些外掛的測試套件會複製到 tests/plugin-test 資料夾,以測試外掛的相容性。

您可以在根資料夾中執行 ./x test pluginpnpm run test:plugin 來執行 Webpack 外掛測試。

注意

在大多數情況下,即使您修改了對應外掛的功能,您只需要按照Rspack 測試中的說明,新增新的測試案例即可。

只有當您原生實作新的 Webpack 外掛並需要複製其測試案例時,您才能將它們新增到此套件中。

如需更多詳細資訊,請參閱:Webpack 外掛測試