在單一儲存庫中進行測試
除了 linting 和建置之外,測試也是生產就緒的單一儲存庫中至關重要的一部分。無論您使用端對端測試或單元測試套件,將它們與 Turborepo 整合都會帶來極大的速度提升。
使用測試執行器
假設我們有一個類似這樣的單一儲存庫
├── apps
│ └── web
│ └── package.json
└── packages
└── shared
└── package.json
apps/web
和 packages/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"
}
}