2 つのブランチをマージすると、選択したブランチのステップを混在させたり、テスト全体を現在表示されているブランチ(master ブランチまたは他のブランチ)に追加したりできます。マージ後、ソースブランチは明示的に削除するまで存在し続けます。競合が発生した場合は、競合するステップを確認し、どのステップを採用するかを決定できます。 2 つのブランチをマージするには:
- マージ先のターゲットブランチを開きます。例えば、Master にマージする場合は、Branches ドロップダウンメニューから選択します。
- Branches ドロップダウンメニューをクリックし、ソースブランチにマウスを合わせます。
- Merge アイコンをクリックします。
Merge Branch ダイアログには、マージされるすべての変更の概要が表示されます。この時点で変更を確認する必要があります。以下の 変更の確認 セクションを参照してください。
変更の確認
ブランチをマージする前に、マージ中に発生する変更の詳細を示すポップアップが表示されます。
変更は次のカテゴリに分類されます:
- テスト
- 共有ステップ(グループ、カスタムアクション等)
- スイート
- フォルダー
トップレベルでは、各カテゴリで何が変更されたか(新しいアイテムがいくつ作成、更新、または削除されたか)を確認できます。各アイテムを展開すると、個々の変更の詳細が表示され、ソースブランチとターゲットブランチを表示し、競合がある場合は 2 つを比較して、マージする優先変更を選択できます。詳細は 競合の解決 セクションで説明します。
マージの cherry-pick
マージに含めるテストとスイート(つまりマージアイテム)を cherry-pick できます。デフォルトでは、すべてのアイテムが選択されています。チェックを外したアイテムはマージに含まれませんが、ソースブランチが削除されない限り、再度マージする際にマージできます。マージアイテムを cherry-pick するには:
- 概要ドロップダウンをクリックして個々のアイテムを表示します。

リストには、ソースブランチとターゲットブランチの違いの詳細(新しいステップの数、変更されたステップの数、削除されたステップの数など)が含まれます。

- テストまたはスイートをマージに含めない場合は、選択を解除するとマージから削除されます。
- 完了したら、Merge をクリックします。
選択したブランチのすべてのステップが、現在表示されているブランチ(master ブランチまたは他のブランチ)にマージされます。
競合の解決
2 つのブランチをマージする際、テストの特定のステップ間や共有ステップ間で競合が発生する可能性があります。例えば、ソースで変更されたステップが、その間にターゲットで削除された場合などです。すべての競合を解決しない限り、マージプロセスを続行できません。
マージ変更の確認 プロセスの一環として、競合がある場合、Merge Branch 画面の上部と競合がある特定のアイテムで競合の数が示されます。

共有ステップ間の競合の解決
グループと共有ステップ(CLI アクション、API アクション等)は、これらのアイテムが複数のテストで使用される可能性があるため、特定のテスト内ではなく個別にマージされます。
共有グループでは、パラメーター値とグループコンテキストを除くすべてのプロパティがテスト間で共有されるため、競合が発生した場合は、共有ステップレベルで解決する必要があります。これは共有ステップ用の個別の競合リストです。
- CLI/API アクションでは、パラメーター値を除くすべてのプロパティがテスト間で共有されるため、競合が発生した場合は、共有ステップレベルで解決する必要があります。
共有ステップ間の競合を解決するには、競合を含む共有ステップの隣にある Compare をクリックします:

Compare 共有ステップ画面が表示されます:
競合がある共有ステップの部分が強調表示されます。
Compare Shared Step 画面には 3 つの列があります:
- Source(右)- ソースブランチの共有ステップ。共有ステップがグループの場合、グループプロパティとそれに続くグループ内のすべてのステップが表示されます。
- Target(左)- ターゲットブランチの共有ステップ。共有ステップがグループの場合、グループプロパティとそれに続くグループ内のすべてのステップが表示されます。
- Merge(中央)- 最終的にマージされたブランチの共有ステップ。
リストの上部には共有ステッププロパティがあります。グループの場合、グループ内の競合ステップ(ソースまたはターゲット)には次の要素が含まれます:
- ステップオブジェクト - テストに表示されるのと同じオブジェクト。
- 競合理由 - 競合が作成されたこのステップで実行されたアクション。例えば、ソースではこのステップが削除され、ターゲットではこのステップが編集された等。
- 推奨バージョンインジケータ - このアクションが反対側のバージョンよりも後に実行されたことを示します。
CLI/API アクション共有ステップの比較画面は次のようになります:
共有ステップの競合を解決するには:
- 関連する矢印(左/右)をクリックして、選択したバージョンを Merge(中央)列に配置します。
- Jump to the next conflict が選択されている場合(デフォルト)、次の競合が強調表示されます。選択されていない場合は、Next conflict ボタンをクリックします。
- テスト内のすべての競合の解決が完了したら、Confirm をクリックします。
- 競合を含む各共有ステップについて、ステップ 1〜4 を繰り返します。
- 次のいずれかを実行します:
- テストレベルで競合がない場合、すべての共有ステップで残りのすべての競合を解決したら、Merge をクリックします。選択したブランチのすべての共有ステップが、現在表示されているブランチ(master ブランチまたは他のブランチ)にマージされます。
- テストレベルで競合がある場合は、次のセクションの手順に従ってこれらの競合を解決します。
テスト間の競合の解決
テスト間の競合を解決するには、競合を含むテストの隣にある Compare をクリックします。

Compare 画面が表示されます:

Compare 画面には 3 つの列があります:
- Source(右) - ソースブランチのテスト。
- Target(左) - ターゲットブランチのテスト。
- Merge(中央) - 最終的にマージされたブランチのテスト。
最初のステップには、バージョン管理されているテストプロパティが含まれています:
- テストデータ
- ベース URL
- 該当する場合、記録された HAR
- テストステータス
- 該当する場合、リクエスト/レスポンスボディのキャプチャ設定
- テストオーナー
ソースとターゲットのどちらのプロパティを使用するかを決定する必要があります(デフォルトでは最新のものが選択されます)。各ステップで競合がある部分は強調表示されます。競合ステップ(ソースまたはターゲット)には次の要素が含まれます:
- ステップオブジェクト - テストに表示されるのと同じオブジェクト。
- 競合理由 - 競合が作成されたこのステップで実行されたアクション。例えば、ソースではこのステップが削除され、ターゲットではこのステップが編集された等。
- 推奨バージョンインジケーター - このアクションが反対側のバージョンよりも後に実行されたことを示します。
テストには、パラメーター値やグループコンテキストに関連する競合がある共有グループなどの共有ステップが含まれる場合があり、これは特定のテストコンテキストで解決する必要があります。このため、共有グループは、競合の特定の理由(変更された特定のパラメーター値など)を表示しながら、テスト競合解決画面に表示される場合があります。
競合を解決するには:
- 関連する矢印(左/右)をクリックして、選択したバージョンを Merge(中央)列に配置します。
- Jump to the next conflict が選択されている場合(デフォルト)、次の競合が強調表示されます。選択されていない場合は、Next conflict ボタンをクリックします。
- テスト内のすべての競合の解決が完了したら、Confirm をクリックします。
- 競合を含む各テストについて、ステップ 1〜4 を繰り返します。
- すべてのテストで残りのすべての競合を解決したら、Merge をクリックします。
選択したブランチのすべてのステップが、現在表示されているブランチ(master ブランチまたは他のブランチ)にマージされます。
比較せずにすべての競合を自動的に解決
特定の競合を比較せず、特定のバージョンを手動で選択せずに、すべての競合を一度に解決するオプションがあります。この場合、Testim は時間的に後で変更されたバージョンを自動的に選択します。
すべての競合を自動的に解決するには:
- Merge Branch 画面から、Resolve all をクリックします。

すべての競合が解決されたことを確認する次のメッセージが表示されます。

- Merge をクリックします。
選択したブランチのすべてのステップが、現在表示されているブランチ(master ブランチまたは他のブランチ)にマージされます。
マージ時のソースブランチの削除
ブランチをマージする際、マージが発生した後にソースブランチを自動的に削除することができます。これは、プルリクエストに続くマージ時、およびプルリクエストなしでも実行できます。
ソースブランチを自動的に削除するには:
- Merge Branch ダイアログまたは Pull Request 画面で「Delete branch x upon merge」チェックボックスを選択します。

