Turborepo

Vitest

Vitest 是來自 Vite 生態系統的測試執行器。將其與 Turborepo 整合將帶來巨大的速度提升。

需知事項

本指南假設您正在使用 create-turbo 或具有類似結構的儲存庫。

設定

假設我們有一個如下所示的 monorepo

package.json
package.json

apps/webpackages/ui 都有自己的測試套件。它們的 package.json 檔案包含一個執行 Vitest 的 test 腳本

./apps/web/package.json
{
  "scripts": {
    "test": "vitest"
  }
}

在根 turbo.json 中,建立一個 test 任務

./turbo.json
{
  "tasks": {
    "test": {}
  }
}

現在,turbo test 可以並行化並快取來自每個套件的所有測試套件,僅測試已變更的程式碼。

在監看模式下執行測試

當您正常執行測試套件時,它會完成並輸出到 stdout。這表示您可以使用 Turborepo 快取它

但是當您在監看模式下執行測試時,該程序永遠不會結束。這使得監看任務更像是開發任務

由於這種差異,我們建議指定兩個獨立的 Turborepo 任務:一個用於執行測試,另一個用於在監看模式下執行測試。在每個工作區的每個 package.json 檔案內

./apps/web/package.json
{
  "scripts": {
    "test": "vitest",
    "test:watch": "vitest --watch"
  }
}

在根 turbo.json

./turbo.json
{
  "tasks": {
    "test": {},
    "test:watch": {
      "cache": false, 
      "persistent": true
    }
  }
}

您現在可以使用 全域 turbo 作為 turbo test:watch 或從根 package.json 中的腳本執行此任務

終端機
turbo test
終端機
turbo test:watch

小時

節省的總計算時間
開始使用
遠端快取 →

本頁內容