...
- Azure DevOps で、Parasoft ツールで実行されるテストと関連付けることができる要件を作成します。
テストファイルで、以下のアノテーション形式を使用して、Azure DevOps システムの要件 ID をテストにマッピングします。
Azure DevOps でトレーサビリティ結果を見るために独自のテストケース定義を作成していないユーザーの場合は、@req
を使用します。* 次のアノテーションは、テストを要件にマッピングします。
*
@req
<<Azure DevOps ID> >
@TEST
...
Parasoft で
@req
を使用し、Parasoft DTP から Azure DevOps への結果の送信をトリガーします。Azure DevOps で独自のテストケース定義を作成したユーザーには、
@test
を使用します。* 次のアノテーションは、テストを要件にマッピングします。
*
@test
<<Azure DevOps ID> >
@TEST
...
各テストケース定義を、Azure DevOps でテストした要件に関連付けます。
@test <Azure DevOps Test ID> アノテーションを使用して、テストを Azure DevOps のテスト実行に関連付けます。
@test
を使用する場合は、Parasoft DTP から Azure DevOps に送信する予定の実行ステータスのテストに、テストケースのステップが定義されていないことを確認してください。Parasoft DTP は、ステップが定義されているテストケースのテストケース実行を更新できません。- @req <Azure DevOps ID> アノテーションを使用して、テストを Azure DevOps のストーリーに関連付けます。
@req
を使用するときは、結果を送信する予定の Azure DevOps プロジェクトで次の関係タイプが定義されていることを確認してください。"verified by"。このような関係は、Parasoft DTP が Azure DevOps でテストケースを作成し、Azure DevOps 要件に関連付けるときに必要になります。
テストにアノテーションを付けると、テストが Azure DevOps のエンティティにリンクされ、DTP レポートで可視化できるようになります。アノテーションは、Parasoft 言語ツール (C/C++test、dotTEST、Jtest) の単体テスト ファイルに追加されます。SOAtest で実行される機能テストの場合、アノテーションは .tst ファイルに追加されます。アノテーションの追加方法の詳細については、ご使用のツールのドキュメントを参照してください。UI で生成された ID ではなく、Azure DevOps URL からの ID を使用する必要があります。
- CI プロセスの一部としてテストを実行します。IDE からテストを手動で実行することもできます。
- テスト実行の一環として、Parasoft テスト実行ツールはフィルターとビルド ID でテスト結果をタグ付けし、データを DTP に送信します。DTP ダッシュボードに テスト ウィジェット を追加し、フィルターとビルド ID を設定することにより、DTP で結果を確認できます。開発者は、テスト実行データを DTP から IDE にダウンロードして、失敗したテストに対処できます。
Sending Test Data to External System フローをデプロイした場合 (「Sending Test Data to External System フローのデプロイ」を参照)、Data Collector が Parasoft ツールからデータを受信すると、単体テストと機能テストの結果が Azure DevOps Connect に自動的に送信されます。デフォルトでは、フローは Data Collector が受信した任意のプロジェクトの単体テストおよび機能テストの結果をフォワードしますが、特定のプロジェクトのデータだけを送信するようフローを設定できます (「Sending Results from a Specific DTP Project特定の DTP プロジェクトの結果を送信する」を参照)。
また、DTP REST API エンドポイントに POST リクエストを手動で送信して、DTP データベースから Azure DevOps Connect に結果を送信することもできます。API 呼び出しの URL パラメーターとして、DTP フィルターとビルドの ID、および一連の Azure DevOps テスト ケースの ID を渡します。No Format curl -X POST -u <username>:<password> "http://<host>:<port>/grs/api/v1.7/linkedApps/configurations/1/syncTestCases?filterId=<filterID>&buildId=<buildID>
フィルター ID とビルド ID は、テスト エクスプローラーの URL で確認できます。
次の表で、エンドポイント パラメーターについて説明します。パラメーター 値 説明 必須 filterId
integer テスト データを含むフィルター IDを指定します。フィルター ID は整数値です。フィルター名と混同しないでください。 Required (必須) buildId
string テスト データを含むビルド ID を指定します。 Required (必須) groupResultsBySOAtestTST
boolean true
に設定すると、SOAtest の結果が .tst ファイルでグループ化されます。その結果、1 つの .tst ファイルが 1 つの Azure DevOps テストに関連付けられます。false
に設定すると、SOAtest.tst 内の各テストステップが Azure DevOps テストに関連付けられます。デフォルトは
false
です。任意 testPlanId
integer 結果の送信先となる Azure DevOps のテスト計画 ID を指定します。DTP は、指定されたテスト計画で "Results from Parasoft DTP - <DTP_PROJECT_NAME>" の形式でテスト スイートを生成します。同期するテストケースはこのテスト スイートにコピーされ、そのテスト ポイントが実行されます。このテスト スイートが以前に生成されたものであれば、指定されたテスト計画に対して今後 syncTestCases を実行する際に再利用されます。この指定がない場合、DTP は新しいテスト計画を生成し、テストケースの結果をそのテスト計画に同期します。
任意 updateResultsOnly boolean 特定のテスト計画内のテストケースをインプレースで更新する同期モードを指定します。
true
に設定した場合、DTP が更新するテスト ケースを正しいテスト計画で検索できるように、testPlanId
パラメーターも指定する必要があります。このモードでは、同期操作を実行する前に、更新するテスト ケース定義が存在している必要があります。DTP は、このモードでは新しいテスト スイート、テスト計画、テスト ケースを作成しません。デフォルトは
false
です。任意 Info title 複数の Azure DevOps 実装のサポート DTP と Azure DevOps 間でテストケースを同期するために
/syncTestCases
REST API エンドポイントを使用している場合、DTP を構成してテストデータを異なる Azure DevOps 実装にデプロイすることができます。この機能は、API 呼び出しを使用した場合にのみ使用できます。<DTP_DATA_DIR>/conf
ディレクトリにある ExternalSystemSettings.properties ファイルの末尾に追加することで、必要な数の Azure DevOps 実装を認識するように DTP を構成できます。API が Azure DevOps に DTP データを送信し、ExternalSystemSettings.properties で一致が見つからない場合は、代わりに「Connecting DTP to Azure DevOps」で UI から設定した Azure DevOps 構成にデータが送信されます。以下の例のような形式で、ExternalSystemSettings.properties ファイルに Azure DevOps 構成を追加します。No Format azuredevops.config1.appUrl=http://azure.test1:8888/organization1 azuredevops.config1.displayUrl=http://azure.test1:8888/organization1 azuredevops.config1.username=john azuredevops.config1.apiToken=encrypted_token azuredevops.config1.project1.dtpProject=bank azuredevops.config1.project1.externalProject=Bank azuredevops.config1.project2.dtpProject=atm-core azuredevops.config1.project2.externalProject=Atm
この構成 (config1) により、DTP プロジェクト bank のデータは、サーバー http://azure.test1:8888/organization1 上の Bank という外部プロジェクトに送られます。サーバーには API トークン abcdef を使用してアクセスします。DTP プロジェクトと外部プロジェクトは、どちらも project1 に属しているという理由でリンクされています。そして適切なサーバーとログイン認証情報は、すべて config1 に属しているため、既知のものです。
これを理解すると、上記の例をテンプレートとして、他の Azure DevOps 実装のために追加構成を定義することができます。各構成には、一意の azuredevops.config# 値が必要です。たとえば、上記の構成をベースとして使用すると、2 番目の構成は次のようになります。
No Format azuredevops.config2.appUrl=http://azure.test2:8888/organization1 azuredevops.config2.displayUrl=http://azure.test2:8888/organization1 azuredevops.config2.username=jane azuredevops.config2.apiToken=encrypted_token azuredevops.config2.project1.dtpProject=foo azuredevops.config2.project1.externalProject=bar
必要な数だけ構成をセットアップできます。いくつか注意点があります。
- これらの例の project#.dtpProject= と project#.externalProject= のペアは、DTP プロジェクトを外部プロジェクトに関連付ける方法を示しています。複数の関連付けが可能ですが、dtpProject はすべての構成で一意である必要があります。
- Report Center の設定 UI で構成されている現在の外部システム構成は、Azure DevOps に構成する必要があります。
- ExternalSystemSettings.properties 構成ファイル内の追加の Azure DevOps 構成はすべて有効である必要があります。
- 各構成の apiToken プロパティは暗号化する必要があります。暗号化しない場合、構成は無効と見なされます。この値を暗号化するには、任意の Parasoft ツールに付属する
-encodepass
CLI オプションを使用します (例:soatestcli.exe -encodepass <API TOKEN>
)。 - トレーサビリティ ウィジェットとレポートには、プライマリ ADO (つまり、UI で定義されたもの) のみが表示されます。
- 複数の ADO からの要件を SOAtest にインポートすることはできません。
API 呼び出しは、渡された
filterId
に基づいて、使用する構成を決定します (エンドポイント パラメーターについて説明した上記の表を参照してください)。DTP はそのフィルターに関連付けられたプロジェクトを検索し、その DTP プロジェクトを指定する構成を見つけます。最初に一致したものが使用されます。一致するものがない場合、デフォルトの構成が使用されます。- DTP は、
filterId
パラメーターとbuildId
パラメーターに一致するテスト結果を見つけ、そのデータを Azure DevOps Connect のシステム要件に送信します。- DTPは
@req <ID>
で結果を検索すると、Azure DevOps で一致するアイテムを検索します。一致が見つかった場合、アイテムに関連付けられたテスト ケースにテスト実行が追加されます。要件 ID に一致するテスト ケースがない場合は、テスト ケースが作成されてテスト実行が追加されます。 external-app-sync.log ファイルも
<DTP_INSTALL>/logs
ディレクトリに書き込まれます。このログ ファイルには、DTP から Azure DevOps へのテスト結果の送信に関する進捗情報が含まれています。
- DTPは
...