自動テスト結果のアップロードを管理する方法や、より多くのデータで結果を補強する方法に関して、TestRail CLI は幅広いニーズをサポートするさまざまな機能があります。
テスト結果の補強
テスト結果をサブミットする際、TestRail はさまざまなフィールドにさまざまなタイプのデータを追加できます。たとえば、画面ショットを添付ファイルとしてアップロードしたり、結果にテキスト コメントを追加したり、カスタム結果フィールドを使用してより構造的にデータを格納したりすることができます。TestRail CLI を使用すると、これをすべて、複数の方法で行うことができます。
すべての結果のフィールドに同じ値を追加する場合、--result-fields
を 1 回または複数回使用して、コマンド ラインで直接値を渡すことができます。
$ trcli -y \ > -h "https://INSERT-INSTANCE-NAME.testrail.io" \ > --project "TRCLI Test" \ > --username "user@domain.com" \ > --password "passwordORapikey" \ > parse_junit \ > --title "Automated Tests Run" \ > --result-fields "version:1.2" \ > --result-fields "custom_environment:qa02" \ > -f "results.xml"
結果ごとに異なる値を追加する必要がある場合も、JUnit レポートの各テスト ケースにプロパティを追加することで実現できます。このテクニックを使用すると、フィールド データで結果を補強するだけでなく、コメントや添付ファイルを追加することもできます。
このようなデータのプロパティを追加するには、以下を使用します。
-
- 添付ファイル
- 名前:
testrail_attachment
またはこれを接頭辞とします。 - 値: アップロードするファイルへのパスを指定します。
- 名前:
- 結果フィールド
- 名前:
testrail_result_field
またはこれを接頭辞とします。 - 値:
field_name:field_value
というパターンを使用します。
- 名前:
- コメント
- 名前:
testrail_result_comment
またはこれを接頭辞とします。 - 値: コメント フィールドに追加するテキストを指定します。
- 名前:
- 結果のステップ
- 名前:
testrail_result_step
またはこれを接頭辞とします。 - 値:
status: step description
というパターンを使用します。 - 利用可能なステータス:
passed
untested
skipped
– maps to retestfailed
- 名前:
- 添付ファイル
<testsuites name="test suites root"> <testsuite failures="0" errors="0" skipped="1" tests="1" time="0.05" name="tests.LoginTests"> <properties><property name="setting1" value="True"/></properties> <testcase classname="tests.LoginTests" name="test_case_2" time="650"> <properties> <property name="testrail_attachment" value="path_to/logs.log"/> <property name="testrail_attachment" value="path_to/screenshot.jpg"/> <property name="testrail_result_field" value="version:1.2"/> <property name="testrail_result_field" value="custom_environment:qa02"/> <property name="testrail_result_comment" value="Finding 1"/> <property name="testrail_result_comment" value="Finding 2"/> <property name="testrail_result_step" value="passed: Insert login credentials"/> <property name="testrail_result_step" value="failed: Click submit"/> <property name="testrail_result_step" value="untested: User should be logged in"/> </properties> </testcase> </testsuite> </testsuites>
テスト ケース作成の補強
自動テスト ケースの作成を伴うコードファースト アプローチを採用する場合、任意のフィールドにデータを設定してテスト ケースを補強できます。テスト結果をサブミットする際、TestRail はさまざまなフィールドにさまざまなタイプのデータを追加できます。たとえば、画面ショットを添付ファイルとしてアップロードしたり、結果にテキスト コメントを追加したり、カスタム結果フィールドを使用してより構造的にデータを格納したりすることができます。TestRail CLI を使用すると、これをすべて、複数の方法で行うことができます。
すべてのテスト ケースのフィールドに同じ値を追加する場合、--case-fields
を 1 回または複数回使用して、コマンド ラインで直接値を渡すことができます。
$ trcli -y \ > -h "https://INSERT-INSTANCE-NAME.testrail.io" \ > --project "TRCLI Test" \ > --username "user@domain.com" \ > --password "passwordORapikey" \ > parse_junit \ > --title "Automated Tests Run" \ > --result-fields "version:1.2" \ > --result-fields "custom_environment:qa02" \ > -f "results.xml"
テスト ケースごとに異なる値を追加したい場合も、次の形式で JUnit レポートの各テスト ケースにプロパティを追加することで実現できます:
-
- ケース フィールド
- 名前:
testrail_case_field
またはこれを接頭辞とします。 - 値:
field_name:field_value
というパターンを使用します。
- 名前:
- ケース フィールド
<testsuites name="test suites root"> <testsuite failures="0" errors="0" skipped="1" tests="1" time="0.05" name="tests.LoginTests"> <properties><property name="setting1" value="True"/></properties> <testcase classname="tests.LoginTests" name="test_case_2" time="650"> <properties> <property name="testrail_case_field" value="refs:STORY-1"/> <property name="testrail_case_field" value="custom_preconds:My preconditions"/> </properties> </testcase> </testsuite> </testsuites>
新しいテスト ケースを 1 つのセクションに保持する
自動テスト ケース作成でコードファーストのアプローチを使用している場合、これらをテスト ケース リポジトリ内の他のテスト ケースから分離することが必要な場合があります。すべての新しいテスト ケースを 1 つのセクションにまとめるには、引数を使用できます--section-id
。これにより、すべての自動スイートとテスト ケースが指定されたセクションの下に作成されます。
$ trcli -y \ > -h "https://INSERT-INSTANCE-NAME.testrail.io" \ > --project "TRCLI Test" \ > --username "user@domain.com" \ > --password "passwordORapikey" \ > parse_junit \ > --title "Automated Tests Run" \ > --section-id "213" \ > -f "results.xml"
マイルストーンへのテスト ランの追加
マイルストーンは、テスト作業を整理するのに非常に役立ちます。マイルストーンを使用すると、共通の目的を持つテストを集約できます。マイルストーンの下に自動テスト用のテスト ランを作成したい場合、--milestone-id
引数を渡すと、TestRail CLI は指定されたマイルストーンの下にテスト ランを作成します。
$ trcli -y \ > -h "https://INSERT-INSTANCE-NAME.testrail.io" \ > --project "TRCLI Test" \ > --username "user@domain.com" \ > --password "passwordORapikey" \ > parse_junit \ > --title "Automated Tests Run" \ > --milestone-id "57" \ > -f "results.xml"
テスト詳細パネルに新しいテスト結果が表示されます。これは、1 つのテスト ランで自動テストの結果を追跡し続ける方法の 1 つです。
既存のテスト ランのテスト結果を更新する
TestRail CLI を実行し、自動テストの結果が TestRail に入力されているが、一部のテストが失敗しているので該当テストを再実行し、既存のテスト ランを新しい結果で更新したい場合を想定します。これを実現するには、--run-id
引数を渡します。すると、TestRail CLI は指定された ID のテスト ランを更新します。
$ trcli -y \ > -h "https://INSERT-INSTANCE-NAME.testrail.io" \ > --project "TRCLI Test" \ > --username "user@domain.com" \ > --password "passwordORapikey" \ > parse_junit \ > --title "Automated Tests Run" \ > --run-id "32" \ > -f "results.xml"
テスト詳細パネルに新しいテスト結果が表示されます。これは、1 つのテスト ランで自動テストの結果を追跡し続ける方法の 1 つです。
テスト ランのクローズ
新しく作成したテスト ランをただちにクローズするには、--close-run
引数を渡します。すると、TestRail CLI はすべてのテスト結果を追加してからクローズ アクションを実行します。これは、ランを完了した後に結果を変更したくない場合に便利です。
$ trcli -y \ > -h "https://INSERT-INSTANCE-NAME.testrail.io" \ > --project "TRCLI Test" \ > --username "user@domain.com" \ > --password "passwordORapikey" \ > parse_junit \ > --title "Automated Tests Run" \ > --close-run \ > -f "results.xml"
テストランは完了済みテスト ランのセクションに表示されます。
ミリ秒単位での結果の経過時間
TestRail バージョン 5.5 以上では、テスト結果の経過時間をミリ秒 (つまり 0.001 秒)単位でサブミットできます。 デフォルトでは、TestRail CLI はすべてのバージョンの TestRail に適用できるよう、時間を秒単位に丸めます。ミリ秒をサポートするバージョンを使用しており、結果の経過時間をミリ秒単位で表示したい場合、--allow-ms
引数を渡します。
$ trcli -y \ > -h "https://INSERT-INSTANCE-NAME.testrail.io" \ > --project "TRCLI Test" \ > --username "user@domain.com" \ > --password "passwordORapikey" \ > parse_junit \ > --title "Automated Tests Run" \ > --allow-ms \ > -f "results.xml"
テスト結果で、経過時間フィールドにミリ秒が使用されているのがわかります。
代替設定を設定ファイルに保存する
別のインスタンスやプロジェクトにすばやく簡単に結果をサブミットしたり、コマンドで別の認証情報やあらかじめ設定した別のパラメーターのセットを使用したりするには、代替設定ファイルを使用します。設定ファイルは YAML フォーマットで記述され、デフォルトでは config.yml という名前で TRCLI 実行モジュールと同じディレクトリに保存されます。環境変数を使用することもできます。コマンドで設定ファイルを参照すると、設定ファイルのすべてのパラメーターで環境変数が上書きされます。コマンドで指定されたパラメーターも設定ファイルで上書きされます。
次のサンプルは、ユーザーの認証情報を保存した代替設定ファイルの使用例です。
host: https://INSERT-INSTANCE-NAME.testrail.io project: TRCLI Test username: username@domain.com password: passwordORapikey title: Automated Tests Run
$ trcli -y \ > --config alternate_config.yaml \ > parse_junit \ > -f "results.xml"