テストが最近失敗したアプリケーションモジュールを取得する

このフローは、過去24時間に自動テストが失敗したアプリケーションモジュールのリストを取得する方法を示しています。

エリア: テスト実行、アプリケーションモジュール (プロダクト領域) 

エンティティ関連図

このフローでは、次のエンティティにアクセスし、これらのエンティティ間の関係を理解する必要があります。

エンティティ このフローの関係 関係の説明 参照 /関係フィールド
テスト   この集約リソースコレクションは、手動、Gherkin、テストスイート、自動化など、テストの種類を表します。 subtype
自動テスト テスト

自動テストは、testsのサブタイプです。

集約リソースコレクションtestsに関連するフィールドはありません。

 
実行

各自動テストには、0回以上の実行を関連付けることができます。

自動テストの参照フィールドlast_runsを使用して、過去24時間に発生した最後の実行を検索します。

last_runs
実行 自動テスト 各実行は1つのテストに関連付けられています。 test_of_last_run
リスト 各実行にはステータスがあり、ステータスはリストノードに保存されます。 status
プロダクト領域 テスト テストは、プロダクト領域 (アプリケーションモジュールとも呼ばれます) に関連付けることができます。 test

トップに戻る

フロー

ステップバイステップでREST API呼び出しを作成しましょう。

  1. まず、ワークスペース内のすべてのプロダクト領域を一覧表示します。

    GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/product_areas

  2. query_clauseを作成しましょう。実行が失敗し、過去24時間に実行されたテストに関連するプロダクト領域のみに関心があります。

    これはネストされたクエリです。ワークスペースのプロダクト領域に関連付けられたテストの特定の実行についてクエリを実行します。

    このクエリには、次の3つの基準セットがあります。最後の実行、ステータス、および作成時間。各セットは、AND演算子を表すセミコロン (;) で区切ります。

    クエリの最も外側の句から始めましょう。すぐに最も内側のクエリに入力します。

    GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/product_areas?query="test EQ {last_runs EQ { inner_query }}"

  3. テストの最後の実行を探す方法がわかったので、内部クエリに入力して、取得する最後の実行を指定できます。ステータスが失敗した実行にのみアクセスしたいと思います。

    これは、リストノードを操作する方法の例です。ALM Octaneで使用可能なリストの1つは、list_nodeであるrun_statusです。最後の実行のステータスをrun_statusリストの値failedと比較します。

    GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/product_areas?query="test EQ {last_runs EQ {status EQ {logical_name EQ ^list_node.run_status.failed^}}}"

    参照フィールドとリストノードの操作の詳細については、エンティティフィールドに許可されている値を取得するを参照してください。

  4. これで、自動テストの失敗した実行に関連付けられているアプリケーションモジュールがワークスペースに表示されます。ただし、過去24時間に作成された実行の失敗に関連するアプリケーションモジュールのみを表示する必要があります。

    これは、作成時間フィールドを操作する方法の例です。日付の形式に注意してください。今日が2016年7月15日の6:45であるとすると、2016年7月14日以降の実行をクエリします。

    GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/product_areas?query="test EQ {last_runs EQ {status EQ {logical_name EQ ^list_node.run_status.failed^};creation_time GT ^2016-07-14T06:45:48Z^}}"

このフローの完全なREST API呼び出しは次のとおりです。 

GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/product_areas?query="test EQ {last_runs EQ {status EQ {logical_name EQ ^list_node.run_status.failed^};creation_time GT ^2016-07-14T06:45:48Z^}}"

トップに戻る

Javascriptの例

* Flow: How to find application modules with failed tests (within the last 24 hours)
* @param requestor
*/
function getModulesWithFailingTests(requestor) {

  requestor.get('/product_areas?query="test EQ {last_runs EQ {status EQ {logical_name EQ ^list_node.run_status.failed^};' +
    'creation_time GT ^' + getLast24HoursDateString() + '^}}"', function(error, message, product_areas) {
    console.info(product_areas);
  });
}

exports.getModulesWithFailingTests = getModulesWithFailingTests;
function getLast24HoursDateString() {
  var date = new Date();
  date.setDate(date.getDate() - 1);

  return date.toISOString();
}

トップに戻る

参照情報: