Azure DevOps サービス |Azure DevOps Server |Azure DevOps Server 2022
テスト タスクを含むパイプラインの場合は、結果別のテスト実行の数 ( 成功、 失敗、 未実行、 影響なし) を示すレポートを作成できます。
次の図は、テストの概要レポートの例を示しています。
この記事のクエリを使用して、次のレポートを生成します。
- ビルド ワークフローのテストの概要
- リリース ワークフローのテストの概要
- 特定のブランチに関するテストの概要
- 特定のテスト ファイルのテストの概要
- 特定のテスト所有者のテストの概要
注
この記事のサンプル クエリには、Analytics OData フィードの v3.0-preview 以降が必要です。 フィードバックを共有します。
| カテゴリ | 必要条件 |
|---|---|
| アクセスレベル |
-
プロジェクトメンバー。 - 少なくとも Basic アクセス。 |
| アクセス許可 | 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。 サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。 |
注
この記事では、OData クエリを使用したサンプル レポートの概要を読み、Power BIに関する基本的な理解があることを前提としています。
サンプル クエリ
似たパイプライン テストの概要レポートを作成するには、 TestResultsDaily エンティティ セットの次のクエリを使用します。 このエンティティ セットは、テストごとにグループ化された、 TestResult 実行の毎日のスナップショット集計を提供します。
注
フィルター処理またはレポートに使用できるプロパティについては、 Test Plans Analytics のMetadata リファレンスとAzure PipelinesのMetadata リファレンスを参照してください。 クエリをフィルター処理したり、プロパティを返したりするには、Propertyで定義されている任意のEntityType値、またはNavigationPropertyBinding Pathに一覧表示されている任意のEntitySet値を使用します。 各 EntitySet は、各プロパティのデータ型を文書化する EntityTypeにマップされます。
ビルド ワークフローのテストの概要
ビルド ワークフローのパイプラインのテストの概要を表示するには、次のクエリを使用します。
次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and DateSK ge {startdate} "
&"and Workflow eq 'Build' "
&")/aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
リリース ワークフローのテストの概要
リリース ワークフローのパイプラインのテストの概要を表示するには、次のクエリを使用します。
注
フィルター処理またはレポートに使用できるプロパティを見つけるには、 Test Plans Analytics のメタデータ リファレンスを参照してください。 クエリをフィルター処理したり、プロパティを返したりするには、Propertyで定義されている任意のEntityType値、またはNavigationPropertyBinding Pathに一覧表示されている任意のEntitySet値を使用します。 各 EntitySet は、各プロパティのデータ型を文書化する EntityTypeにマップされます。
次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and DateSK ge {startdate} "
&"and Workflow eq 'Release'"
&")/aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
ブランチでフィルター処理されたテストの概要
特定のブランチのパイプラインのテストの概要を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で指定されているものと共に、次の追加手順を実行します。
-
BranchをBranch.BranchNameに展開します。 - Power BI ビジュアライゼーション スライサーを選択し、フィールド
Branch.BranchNameをスライサーの Field に追加します。 - 結果の概要を表示する必要があるスライサーからブランチ名を選択します。
スライサーの使用方法の詳細については、「Power BI の
次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and DateSK ge {startdate} "
&"and Workflow eq 'Build'"
&")/groupby("
&"(Branch/BranchName),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
テスト ファイルでフィルター処理されたテストの概要
特定のテスト ファイルのパイプラインのテストの概要を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
-
TestをTest.ContainerNameに展開します。 - Power BI ビジュアライゼーション スライサーを選択し、フィールド
Test.ContainerNameをスライサーの Field に追加します。 - 結果の概要を表示する必要があるスライサーからコンテナー名を選択します。
次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and DateSK ge {startdate} "
&"and Workflow eq 'Build'"
&")/groupby("
&"(Test/ContainerName),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
テスト所有者によってフィルター処理されたテストの概要
特定のテスト所有者が所有するテストのパイプラインのテストの概要を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
-
TestをTest.TestOwnerに展開します。 - Power BI ビジュアライゼーション スライサーを選択し、フィールド
Test.TestOwnerをスライサーの Field に追加します。 - 結果の概要を表示する必要があるスライサーからテスト所有者を選択します。
次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and DateSK ge {startdate} "
&"and Workflow eq 'Build'"
&")/groupby("
&"(Test/TestOwner),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
置換文字列とクエリの内訳
次の文字列を実際の値に置き換えます。 置換に波括弧 {} を含めないでください。 たとえば、組織名が "Fabrikam" の場合は、{organization}ではなく、Fabrikamを{Fabrikam}に置き換えます。
-
{organization}- 組織名。 -
{project}- チーム プロジェクト名。 -
{pipelineName}- パイプライン名。 例:Fabrikam hourly build pipeline。 -
{startdate}- レポートを開始する日付。 形式: YYYYMMDD。 例: 2022 年 8 月 15 日の20220815。
クエリの内訳
次の表では、クエリの各部分について説明します。
クエリの一部
説明
$apply=filter(
filter() 句を開始します。
Pipeline/PipelineName eq '{pipelineName}'
指定したパイプラインのテスト実行を返します。
and DateSK ge {startdate}
指定した日付以降に実行されたテストを返します。
and Workflow eq 'Build' または and Workflow eq 'Release'
BuildまたはRelease ワークフローで指定されたパイプラインに対してのみテストの実行を返します。
)
filter() 句を閉じます。
aggregate(
フィルター条件に一致するすべてのテスト実行に対して、 aggregate 句を開始します。
ResultCount with sum as ResultCount,
テスト実行の合計数を ResultCountとしてカウントします。
ResultPassCount with sum as ResultPassCount,
成功したテスト実行の合計数を ResultPassCountとしてカウントします。
ResultFailCount with sum as ResultFailCount
失敗したテスト実行の合計数を ResultFailCountとしてカウントします。
ResultNotExecutedCount with sum as ResultNotExecutedCount,
実行されていないテスト実行の合計数を ResultNotExecutedCountとしてカウントします。
ResultNotImpactedCount with sum as ResultNotImpactedCount
影響を受けなかったテスト実行の合計数を ResultNotImpactedCountとしてカウントします。
)
aggregate()句を閉じます。
(省略可能)クエリの名前を変更する
既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [クエリ設定] ペインから新しい名前を入力します。
(省略可能)列フィールドの名前を変更する
列フィールドの名前を変更して、わかりやすいものにすることができます。 方法については、「列フィールドの名前変更」を参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、[ホーム] メニューから [閉じて適用] を選択します。 このアクションによりクエリが保存され、Power BIの Report タブに戻ります。
ドーナツ グラフ レポートを作成する
Power BIの Visualizations で、Donut レポートを選択します。
次のフィールドを 値に、表示されている順序で追加します。 各フィールドを右クリックし、[ 合計] が選択されていることを確認します。
ResultPassCountResultFailCountResultNotExecutedCount-
ResultNotImpactedCountレポートは次の図のようになります。