リポジトリ
ドキュメント
テスト

モノレポでのテスト

リンティングやビルドと同様に、テストは本番環境対応のモノレポにおいて極めて重要な部分です。エンドツーエンドテストを使用する場合でも、単体テストスイートを使用する場合でも、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 を使用してキャッシュ することができます。

しかし、ウォッチモードでテストを実行すると、プロセスは終了しません。そのため、ウォッチタスクは開発タスク により似ています。

この違いのため、テストを実行するためのタスクと、ウォッチモードで実行するためのタスクの **2 つの異なる 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"
  }
}