仓库
文档
测试

单仓库测试

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