集成 Jest
Jest 是一个拥有庞大生态系统的常用测试运行器。与 Turborepo 集成将带来巨大的速度提升。
Good to know:
This guide assumes you're using create-turbo or a repository with a similar structure.设置
假设我们有一个如下所示的单体仓库:
package.json
package.json
在你计划有测试套件的包中安装 jest
。对于这个例子,我们将在 web
和 @repo/ui
中有测试:
apps/web
和 packages/ui
都有自己的测试套件,所以我们将在它们的 package.json
中添加一个 test
脚本:
在根目录的 turbo.json
中,创建一个 test
任务:


现在,turbo test
可以并行化并缓存每个包中的所有测试套件,只测试已更改的代码。
在监视模式下运行测试
当你正常运行测试套件时,它会完成并输出到 stdout
。这意味着你可以用 Turborepo 缓存它。
但当你在监视模式下运行测试时,进程永远不会退出。这使得监视任务更像是一个开发任务。
因为这种差异,我们建议指定两个单独的 Turborepo 任务:一个用于运行测试,另一个用于在 Jest 的监视模式下运行它们。在每个工作区的 package.json
文件中:
在根目录的 turbo.json
中:


你现在可以使用全局 turbo
运行 turbo test:watch
,或者从根 package.json
中的脚本运行: