This product is not supported for your selected Datadog site. ().

互換性

Test Impact Analysis は、 dd-sdk-swift-testing のバージョン 2.2.0+ でのみサポートされています。

セットアップ

テストの最適化

Test Impact Analysis をセットアップする前に、Test Optimization for Swift をセットアップしてください。また、スキームやテストプランのテスト設定でコードカバレッジオプションを有効にするか、Swift のテストコマンドに --enable-code-coverage を追加する必要があります (SPM ターゲットを使用している場合)。

Agent 経由でデータを送信する場合は、v6.40 以降または v7.40 以降を使用してください。

テストサービスの Test Impact Analysis を有効にする

あなた、またはあなたの組織で Intelligent Test Runner Activation (intelligent_test_runner_activation_write) 権限を持つユーザーが、テストサービス設定ページで Test Impact Analysis を有効にする必要があります。

Test Impact Analysis enabled in test service settings in the CI section of Datadog.

Run tests with Test Impact Analysis enabled

セットアップが完了したら、通常どおりテストを実行してください。

特定のテストに対するスキップの無効化

Test Impact Analysis の動作を上書きし、特定のテストがスキップされないようにできます。これらのテストは unskippable テストと呼ばれます。

テストをスキップできないようにする理由は?

Test Impact Analysis uses code coverage data to determine whether or not tests should be skipped. In some cases, this data may not be sufficient to make this determination.

例:

  • テキストファイルからデータを読み込むテスト
  • テスト対象のコード以外の API とやりとりするテスト (リモートの REST API など)
  • 外部プロセスを実行するテスト
  • グローバルで共有される状態 (例: 別のテストやプロセスによって作成されるキャッシュ) に依存するテスト
  • フォークされたプロセスを使用するテスト (テストごとのコードカバレッジはメインプロセスのカバレッジのみを収集します)
  • capybara または selenium-webdriver を使用するインテグレーションテスト

Designating tests as unskippable ensures that Test Impact Analysis runs them regardless of coverage data.

Marking tests as unskippable

import XCTest
import DatadogSDKTesting

class SomeTestCase: XCTestCase {
  func testMethod() {}
}

extension SomeTestCase: ExtendableTaggedType {
  static func extendableTypeTags() -> ExtendableTypeTags {
    withTagger { tagger in
      // このクラス全体を unskippable に設定
      tagger.set(type: .itrSkippable, to: false)
      // 1 つのメソッドのみを unskippable に設定
      tagger.set(instance: .itrSkippable, to: false, method: #selector(testMethod))
    }
  }
}

Test Impact Analysis を一時的に無効にする

環境変数 DD_CIVISIBILITY_ITR_ENABLEDfalse または 0 に設定することで、Test Impact Analysis をローカルで無効化できます。

DD_CIVISIBILITY_ITR_ENABLED (オプション)
Test Impact Analysis のカバレッジおよびテストスキップ機能を有効化
デフォルト: (true)

その他の参考資料