单仓库测试
除了代码风格检查和构建之外,测试是生产就绪型单仓库的关键部分。无论您使用端到端测试还是单元测试套件,将它们与 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"
}
}