儲存庫
文件
測試

在單一儲存庫中進行測試

除了 linting 和建置之外,測試也是生產就緒的單一儲存庫中至關重要的一部分。無論您使用端對端測試或單元測試套件,將它們與 Turborepo 整合都會帶來極大的速度提升。

使用測試執行器

假設我們有一個類似這樣的單一儲存庫

├── apps
│   └── web
│       └── package.json
└── packages
    └── shared
        └── package.json

apps/webpackages/shared 都擁有自己的測試套件。它們的 package.json 檔案如下所示

{
  "scripts": {
    "test": "jest"
  }
}

在根目錄 turbo.json 中,我們建議在 管線中設定 test 任務

{
  "pipeline": {
    "test": {}
  }
}

現在,您可以執行 turbo test,並讓 Turborepo 測試整個儲存庫。

由於 Turborepo 的 快取,這也表示只有檔案有變更的儲存庫才會被測試,因此能節省大量時間。

在監控模式下執行測試

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

但是,當您在監控模式下執行測試時,此程序永遠不會結束。這使得監控工作更像 開發工作

由於有此差異,我們建議指定兩個獨立的 Turborepo 工作:一個用於執行測試,另一個用於在監控模式下執行測試。

以下是一個範例

在每個工作區的個別 package.json 檔案中

{
  "scripts": {
    "test": "jest",
    "test:watch": "jest --watch"
  }
}

在根目錄 turbo.json

{
  "pipeline": {
    "test": {},
    "test:watch": {
      "cache": false
    }
  }
}

在根目錄 package.json

{
  "scripts": {
    "test": "turbo run test",
    "test:watch": "turbo run test:watch"
  }
}