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は、以下の言語およびフレームワークでサポートされています。

言語フレームワーク最小ライブラリバージョン
RubyRSpec, Minitestdatadog-ci gem 1.31.0 以降
Pythonpytestddtrace パッケージ 4.11.0 以降
JavaScriptCucumber.js, Cypress, Jest, Mocha, Playwright, Vitestdd-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. を1回実行してddtest plan、再利用可能な.testoptimization/計画を作成します。
  2. テストを実行する各CIジョブに.testoptimization/ディレクトリを共有します。
  3. 各CIジョブでddtest run --ci-node <CI_NODE_INDEX>を実行し、そのCIノードに割り当てられたファイルのみを実行します。

シングルノードおよびマルチノードの例については、「Set Up Test Parallelization」を参照してください。

次のステップ

ddtestをインストールし、CIプロバイダーを設定して、Test Parallelizationによるテストファイルの分割方法をカスタマイズします。