This product is not supported for your selected
Datadog site. (
).
概要
Test Parallelizationは、テストファイルをCIノードやローカルワーカーに分散させることで、CIのテスト時間を短縮するのに役立ちます。これはTest Optimizationデータを使用して、実行すべきテストファイルを検出し、その所要時間を推定し、実行計画を作成します。
Test Parallelizationは、Test Impact Analysisと連携するように設計されています。Test Impact Analysisは、コード変更の影響を受けないテストをスキップします。Test Parallelizationは、残りのテストファイルを、選択されたCIノード間で均等に分割します。
テストスイートの実行に時間がかかる場合は、Test Parallelizationを使用してください。Test Impact Analysisと併用すると、Test Parallelizationはスキップされなかったテストを含むファイルのみを実行します。また、必要な数だけのCIノードを選択することでCIコストの削減にも役立ち、合計CPU時間を短縮できる可能性があります。
セットアップ
Test Parallelizationをセットアップする前に、Test Optimizationをセットアップしてください。Test Parallelizationと併用する予定がある場合は、オプションでTest Impact Analysisもセットアップしてください。次に、Set Up Test Parallelizationに従ってddtestをインストールし、CIプロバイダーを設定します。
互換性
Test Parallelizationは、以下の言語およびフレームワークでサポートされています。
| 言語 | フレームワーク | 最小ライブラリバージョン |
|---|
| Ruby | RSpec, Minitest | datadog-ci gem 1.31.0 以降 |
| Python | pytest | ddtrace パッケージ 4.11.0 以降 |
| JavaScript | Cucumber.js, Cypress, Jest, Mocha, Playwright, Vitest | dd-trace パッケージ 5.111.0 以降(v5用)、および 6.0.0 以降(v6 |
JavaScriptの場合、ddtestにはCypress 12以降、Mocha 8以降、Playwright 1.18以降、Vitest 1.6以降が必要です。Cucumber.jsのサポートは、バージョン7から13でテストされています。これらのフレームワークには、ddtest 1.6.0以降が必要です。フレームワークのバージョンは、dd-trace互換性要件も満たしている必要があります。
仕組み
Test Parallelizationは、ddtest CLIを使用してテストの計画と実行を行います。
- を1回実行して
ddtest plan、再利用可能な.testoptimization/計画を作成します。 - テストを実行する各CIジョブに
.testoptimization/ディレクトリを共有します。 - 各CIジョブで
ddtest run --ci-node <CI_NODE_INDEX>を実行し、そのCIノードに割り当てられたファイルのみを実行します。
シングルノードおよびマルチノードの例については、「Set Up Test Parallelization」を参照してください。
次のステップ
ddtestをインストールし、CIプロバイダーを設定して、Test Parallelizationによるテストファイルの分割方法をカスタマイズします。