次の方法で共有


TFS/Azure DevOps Services の部分的にマップされた TFVC リポジトリのテスト影響

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

テスト影響分析 (TIA) は、タスクのバージョン 2 から始まる VSTest タスクに含まれています。 この機能は、ビルドに関連するテストのみを実行することで DevOps サイクルを高速化するのに役立ちます。 実質的には、テスト スイート全体ではなく、受信した変更の影響を受けるテストのみを実行することになります。 テスト影響分析の詳細については、「テスト影響分析 (TIA) を使用してテストを高速化する」を参照してください。

TIA では、Azure DevOps での GitHub と Git のサポートに加えて、TFVC もサポートされています。 この記事では、TFVC に基づくビルド/リリース パイプラインでの TIA に関する既知の制限事項と、この制限事項をかいくぐる回避策について説明します。

部分的にマップされた TFVC リポジトリに関する問題

TIA の仕組みはベースライン実行とも呼ばれ、テスト メソッドが最初の実行時に到達したファイルのデータを収集します。 このデータを収集するコレクターには、エージェント マシンに登録されているリポジトリのみが表示されます。 TFVC ベースのパイプラインでは、部分的にリポジトリを登録するオプションがあります。 たとえば、次の構造を持つリポジトリを考えてみましょう。

TFVC リポジトリの構造

次の例に示すように、ビルド/リリース パイプラインの [プロセス] にある [ソースの取得] タイルが表示されます。

ソースを取得する

[ソースの取得] を選択すると、リポジトリを部分的にマップするためのオプションが右側のブレードに表示されます。

リポジトリをマップする

前述の例に示すようにリポジトリ全体を登録した場合、TIA は正常に動作し続けますが、次の例に示すように部分的に登録した場合、TIA は影響を受けるテストを見つけることができません。

リポジトリを部分的にマップする

TFVC リポジトリを部分的に登録した場合、コレクターはエージェントの部分的に登録されたリポジトリに対してのみ変更を収集でき、パス全体については確認できないため、TIA は影響を受けるテストを見つけることができません。 コード変更がサーバーから流れ込むと、パス全体を提供することになり、マップされたパスとの照合が失敗します。

回避策

この問題を回避するには、部分的なリポジトリをサーバー上の完全なコード構造にマップすることで、ローカル登録リスト上のファイルの完全なパスが完全なサーバー パスと一致するようにすることができます。 これを行うには、次の例に示すように、サーバー パスに一致する ローカル パスを指定します。

部分的にマップされたリポジトリの修正

これにより、サーバー パスがコレクターによって収集されたパスと一致し、影響を受けたテストが正しく一覧表示されます。