私たちはテストフレームワークのコードベースと、git repoで設定したテストデータを持っています。 テストデータのサイズは非常に大きく、1 GBから20 GBまで変化し、gitはそのようなデータを格納する解決策ではありません。時間のかかるタスクは次のとおりです。ソース(Gitの) テストオートメーションで大きなデータセット駆動テストを管理するにはどうすればよいですか?
- ダウンロードデータは、試験機を対象とします。
データ転送時間を短縮するソリューションは何ですか。
私たちはテストフレームワークのコードベースと、git repoで設定したテストデータを持っています。 テストデータのサイズは非常に大きく、1 GBから20 GBまで変化し、gitはそのようなデータを格納する解決策ではありません。時間のかかるタスクは次のとおりです。ソース(Gitの) テストオートメーションで大きなデータセット駆動テストを管理するにはどうすればよいですか?
データ転送時間を短縮するソリューションは何ですか。
私は、このような巨大なファイルをテスト実行サイクルごとにマシン間で転送することは意味がないと考えています。特に、すべてのファイルが静的で、ビルドの頻度が高い場合。
利用可能なリソース/インフラストラクチャによっては、共有フォルダを持つDockerイメージまたはVMの使用を検討しています。たとえば、Dockerの場合、テストデータを持つマウントされたボリュームを持つことができます。 VMは、ホストの共有を使用するように設定することもできます(または、既に注入されたカスタムデータを使用してVMを配備することもできます)。公共サービスもそのような機能を提供します。
少なくともストレージを必要とするソリューションは、動的データ生成です。ハードコードされた値とファイルを持つ代わりに、それらを生成するアルゴリズムを作成することができます。
動的データがオプションでない場合は、Mavenリポジトリ(Sonatype Nexus)にファイルを保存し、それらのファイルをダウンロードできます。そのようなファイルにはバージョンがあり、既にダウンロードされている場合、Mavenはスマートでアーティファクトをダウンロードしないようにしています。
このような膨大な量のデータは、頻繁に変更すると、大量のストレージが必要になります。したがって、Nexusマシンはかなり大きくする必要があります。
ご回答いただきありがとうございます。提案されたソリューションでは、GBあたりのデータ転送時間はどのくらいになるでしょうか。 – arpit
ドッカーでは、同じファイルシステム(linuxホストはコンテナでボリュームをマップします)になるため、パフォーマンスの低下は全く見られません。 –