このページでは、完了した一括実行を同じ条件でリトライする機能について説明します。失敗したテストをまとめてリトライする機能を使うことで、毎日のテスト結果を確認する時間を短縮できます。
一括実行結果詳細画面からリトライする
一括実行が完了し、成功していない(要確認、中止を含む)テストケースが1件以上ある場合には一括実行結果詳細画面に「リトライ」メニューが表示されます。メニューから「全テストをリトライ」を選ぶと一括実行内のすべてのテストケースを、「失敗したテストをリトライ」を選ぶと成功していないテストケースだけを実行できます。
リトライの結果は別の一括実行結果として管理され、元の一括実行とリトライ結果は相互にリンクされます。
複数のテストパターンを持つ一括実行の場合は、リトライメニューが2種類表示されます。全パターンをリトライしたい場合は「一括実行全体をリトライ」、特定のテストパターンをリトライしたい場合は「このテストパターンをリトライ」を使用します。
特定のテストパターンをリトライした場合は、そのパターンの名前も一括実行の結果一覧に表示されます。
MagicPod Web APIからリトライする
MagicPod Web APIからも、以下のエンドポイントを使って一括実行のリトライが可能です。
/v1.0/{organization_name}/{project_name}/batch-run/{batch_run_number}/retry/
targetで、全テストケースか失敗したテストのみかを指定できます。patternsで、複数パターンが存在する場合にどれをリトライするかを指定できます。
実行中の失敗テストのリトライ機能との使い分け
このページで紹介したリトライ機能とは別に、MagicPodには一括実行中の失敗テストのリトライ機能もあります。このセクションでは、2つの機能の違いについて説明します。それぞれの特徴を把握した上で、必要に応じて組み合わせてお使いください。
2つの機能の違い
| 実行中の失敗テストのリトライ | リトライ機能(本ページ) | |
|---|---|---|
| リトライのタイミング | 一括実行中 | 一括実行完了後 |
| 何がリトライされるか | 直前に失敗した1件のテスト | 全テスト、もしくは失敗した全テスト |
| リトライ前後の結果の表示方法 | 1件のテスト結果の中にログのみ表示 | 別々の一括実行結果として表示 |
実行中の失敗テストのリトライ機能の特徴
-
有効なユースケース
- 不安定で、頻繁に失敗するが再実行すれば成功するテストケースがある場合
- なるべく再実行せずに一度ですべて成功の実行結果を出したい場合
-
課題
- 不安定な問題とは別に実際の不具合がある場合、リトライを繰り返すことで実行時間が長くなってしまう
- 1回目の実行では失敗して2回目では成功するようなタイプの不具合があった場合に見落とす可能性がある
本ページのリトライ機能の特徴
-
有効なユースケース
- 日次実行で、最終的にすべてのテストケースが通ったことを確認したい場合
- 特定の原因で複数のテストケースが失敗したあと、修正確認を行いたい場合
-
課題
- 一括実行が完了(中止でもOK)しないとリトライが行えない
注意・制約事項
-
テスト設定番号を指定していない一括実行はリトライできません。また、リトライの際はその番号で保存された設定がそのまま使われるため、設定内容を部分的に上書きすることはできません。リトライ機能が利用できないのは、以下のケースです。
-
コマンドラインからの実行で「詳細設定」を選択している
- 一括実行設定番号を使いながら一部設定を上書きしてテストを実行したい に従って設定内容を上書きしている
- ローカルPC環境のコマンドラインからの実行で、設定内容を直接記述する場合 に従っている
-
-
リトライの際はテスト設定を番号で、テストパターンを名前で探します。そのため、テストパターンの名前を変更した場合や、テスト設定・テストパターンを削除した場合はリトライできません。(テスト設定の名前の変更は問題ありません)
- このリトライ機能では、最新のテストケース・設定の内容を使って一括実行をやり直します。一括実行後にテストケースや設定を変更した場合は、その内容が反映されます。テストケースを削除した場合、そのテストケースは実行されません。(残りのテストケースは実行されます)
- データパターンを含む実行については失敗したパターンのみが再実行されますが、
1*10のような指定で同じテストケースを繰り返している場合、リトライされる内容が想定と異なることがあります。
Q&A
リトライで成功した場合、元の一括実行のステータスは「成功」に変わりますか
リトライで成功した場合も、元の一括実行のステータスは変更されません。リトライの結果は別の一括実行結果として管理されますが、元の一括実行とリトライ結果は相互にリンクされます。詳細はこちらを参照してください。