Jest
Jest 是一个常见的测试运行器,拥有庞大的生态系统。与 Turborepo 集成将带来巨大的速度提升。
须知:
本指南假设您正在使用 create-turbo 或具有类似结构的仓库。设置
假设我们有一个这样的 monorepo
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 中的脚本来运行。