サブセットのインポートとエクスポート

通常、すべてのテストArtifactsを1 つのリポジトリで作成および管理します。テスト作業を分割しているため、リポジトリが複数ある場合は、たまにはデータを交換する必要がある場合があります。例えば、

  • シングルユーザープレイグラウンドから成功した実験を共通リポジトリに移動し、本番環境にプッシュします。

  • 使用頻度の高いモジュールや標準化されたテストケースを他のプロジェクトのチームと共有することで、テスト作業を効率化できます。

これを行うには、共有したいオブジェクトのサブセットをエクスポートする必要があります。次に、サブセットをもう一方のリポジトリにインポートします。

大きなサブセットの準備をする

大きなサブセットをエクスポートまたはインポートすると、多くのメモリを消費するため、例外が発生したり、失敗したりする可能性があります。ごく一般的な目安として、大きなサブセットは、空きメモリの量にもよりますが、約50MBから始まります。

エクスポートおよびインポート処理の応答性を高め、メモリの消費を抑えるには、 UseLargeSubsetExport および UseLargeSubsetImport の設定を有効にすることをお勧めします。

サブセットをエクスポートする

プロジェクトのすべてのコンテンツをエクスポートすることも、フォルダ、モジュール、実行リスト、テストケースなどの個別のオブジェクトをエクスポートすることもできます。

準備ステップの実施

エクスポートする前に準備をしてください。

  • 重複モジュールを検索してマージし、モジュールの複数のバリエーションではなく、最終バージョンのみをエクスポートします。これにより、インポート・リポジトリでの混乱や余分な作業を防ぐことができます。

  • オブジェクトを同期から除外した場合は、同期を有効にします。これにより、必要なオブジェクトをすべてサブセットに追加することができます。

  • ワークスペースを圧縮します。これはエクスポートのスピードアップに役立ちます。

エクスポートの実行

サブセットをエクスポートするには、以下の手順に従ってください。

  1. エクスポートしたいオブジェクトを選択します。プロジェクト全体をエクスポートするには、プロジェクトルート要素を選択してください。

  2. 以下のいずれかの方法でエクスポートタスクをトリガーしてください。

    • 選択項目を右クリックし、コンテキストメニューからサブセットのエクスポートを選択します。

    • リボンメニューから「ホーム」を選択し、「サブセット」をエクスポートしてください。

  3. 後続のダイアログで、サブセットを保存する場所を選択し、保存を選んでください。

サブセットのサイズによっては、時間がかかる場合があります。

含まれるもの

Tosca には、エクスポートするオブジェクトに直接リンクされているすべてのテストArtifactsが自動的に含まれます。

例えば、テストケースに対し、Toscaは、リンクされたModules、このテストケースに対して定義したテストコンフィギュレーションパラメータ、テストステップライブラリテストケーステンプレートなどを含める場合があります。

除外項目

トスカは以下のものをエクスポートから除外します:

  • プロジェクトルート要素のために定義した項目すべて。たとえば、プロジェクトルートレベルのテストコンフィギュレーションパラメータや、プロパティやユーザーグループなどのプロジェクト定義です。プロジェクトをエクスポートすると、Toscaはプロジェクトのすべてのオブジェクトをエクスポートしますが、プロジェクトルート自体やその仕様はエクスポートしません。

  • プロパティの ViewingGroupNameOwningGroupName で定義したアクセス権。エクスポートしたオブジェクトを他のリポジトリで制限したい場合は、インポート後にアクセス権を再定義する必要があります。

  • デフォルトのプロパティ、 CreatedAt、CreatedByModifiedAt 、および ModifiedBy の値。Tosca は、サブセットをインポートする際に、これらのプロパティに新しい値を作成します。

サブセットをインポートする

エクスポートされたテスト成果物を別のリポジトリに取り込むには、サブセットをこのリポジトリにインポートする必要があります。

Toscaはインポートされたオブジェクトを同期しないことにご注意ください。テストケースをインポートしてから変更した場合、その変更はインポートしたバージョンのテストケースにのみ適用されます。

準備ステップの実施

インポートを行う前に準備してください。

  • インポートリポジトリ内の重複モジュールを検索してマージします。サブセットにインポートリポジトリのモジュールと重複するモジュールが含まれている場合、Toscaはインポート中にこれらのモジュールをマージするオプションを提供します。これは、インポートリポジトリ内に同じモジュールの複数のバージョンが存在しない場合に最適に機能します。

  • オブジェクトを同期から除外した場合は、同期を有効にします。これにより、Toscaはワークスペースとリポジトリ間で不一致を起こすことなく、すべてのオブジェクトを追加できるようになります。

インポートの実行

サブセットをインポートするには、以下の手順に従ってください。

  1. 他のリポジトリに接続されているワークスペースを開いてください。

  2. 目的の親オブジェクト (プロジェクトルート要素または ComponentFolder)をチェックアウトします。これらのオブジェクトにのみインポートできます。

  3. 以下のいずれかの方法でインポートタスクをトリガーしてください。

    • 親オブジェクトを右クリックし、コンテキストメニューから「サブセットのインポート」を選択します。

    • 親オブジェクトを選択し、その後リボンメニューからホーム->; サブセットのインポートを選択してください。

  4. 後続のダイアログで、インポートしたいファイルを選択し、「く」を選んでください。

  5. サブセットにインポートリポジトリ内のModulesと重複するModulesが含まれている場合は、追加のダイアログが表示されます。そこで、これらのモジュールをインポートするかマージするかを選択します。

    ちなみに、インポート中に決してマージしたくない場合は、Toscaに聞かれないようにすることができます。これを行うには、 UseMergeSubset の設定を無効にします。

サブセットのサイズや内容によっては、この処理には時間がかかる場合があります。

インポートするとどうなるか

デフォルトでインポートするか、自分で選択してインポートするのかは問題ではありません。

いずれの場合でも、Toscaはオブジェクトタイプごとに1つずつタイムスタンプ付きのインポートフォルダを作成します。これらのインポートフォルダを同じオブジェクトタイプのフォルダに追加します。場所はインポートをトリガーする場所によって異なります。

  • プロジェクトルート要素にインポートすると、Toscaはインポートフォルダを標準フォルダに追加します。

  • コンポーネントフォルダ(ComponentFolder)にインポートする場合、Tosca はそれぞれのコンポーネントフォルダ(ComponentFolder)にインポートフォルダを追加します。

インポートフォルダの場所:プロジェクトルートにインポート(左)またはComponentFolderにインポート(右)

インポートされたオブジェクトはすべて新しい UniqueId を取得します。

マージするとどうなるか

インポートリポジトリに重複するModulesを含むサブセットをインポートする場合、インポートワークフロー中にこれらのModulesを統合することを選択できます。

この場合、Tosca は前のセクション、 "インポートするとどうなるか" で説明したロジックに従って、インポートフォルダー内にすべての一意のオブジェクトを追加します。

さらに、Tosca はサブセット内の重複からの情報を使用してリポジトリ内のModulesを更新します。マージされたモジュールには追加のフォルダはありません。マージ中に何が起こるかを以下に示します。

  • Tosca は、リポジトリ内の元のモジュールの UniqueId を保持します。

  • Tosca は、サブセットモジュールには存在するが、元のモジュールには存在しないもの、例えばモジュール属性やパラメータを追加します。

  • Toscaはプロパティやパラメータの値を統一します。モジュールのプロパティやパラメータが同じで値が異なる場合、Toscaは元のモジュールの値をサブセットモジュールの値で上書きします。