ホームページ >バックエンド開発 >Python チュートリアル >自動テスト用の Python の shutil モジュール
ソフトウェア開発の動的な領域では、自動テストを通じてアプリケーションの品質を確保することが不可欠です。自動テストには、ファイルとディレクトリの特定のセットアップを必要とする多数のテストの実行が含まれます。テスト環境の効率的なセットアップと破棄は、このプロセスの重要な部分であり、適切なツールがないと退屈でエラーが発生しやすい作業になることがよくあります。
タスクを簡素化する適切なツールを見つけると、大きな違いが生まれます。 shutil として知られる標準ユーティリティ モジュールは、シェル ユーティリティの略語です。ファイルやディレクトリをコピー、移動、削除するための高レベルのファイル操作を提供し、テスト環境の管理を簡素化します。このブログでは、shutil モジュールが自動ソフトウェア テストでファイル操作を効率化する方法について説明します。
各テストが正しい環境で確実に開始されるようにするには、セットアップ プロセスを自動化し、一貫性のある分離されたテスト環境を作成する必要があります。
Shutil モジュールは Python 標準ライブラリの一部であるため、追加のものをインストールする必要はありません。スクリプトの先頭にインポートするだけです。
# Import shell utility module import shutil
アプリケーションのテスト中に、特定のデータ ファイルのセットが必要になることがよくあります。ファイルを手動でコピーする代わりに、shutil モジュールを使用してファイルをコピーするための 4 つの一般的な方法が簡単かつ効率的に提供されます。
shutil.copy(source, destination, *, follow_symlinks=True)
このメソッドは、コピー元のファイルをコピー先に指定されたディレクトリまたはファイルにコピーし、ファイルのコピー先を返します。ファイルのデータとファイルのアクセス許可モードはコピーされますが、コピーされたファイルのメタデータ (ファイルの作成時間と変更時間) は保持されません。ソースと宛先はパスのようなオブジェクトまたは文字列である必要があります。宛先にはファイルまたはディレクトリの両方を指定できます。宛先にディレクトリへのパスが指定されている場合、ファイルはソース パスのファイル名で宛先ディレクトリにコピーされます。
シンボリック リンクを使用する場合:
follow_symlinks=True の場合、宛先はソースのシンボリック リンクが指すファイルのコピーになります。パラメータ follow_symlinks のデフォルト値は True です。
follow_symlinks=False の場合、宛先はシンボリック リンクとして作成されます。
# Import shell utility module import shutil # Copy the content of source_file.txt to destination_file.txt shutil.copy('source_file.txt', 'destination_file.txt')
shutil.copy2(source, destination, *, follow_symlinks=True)
shutil.copy2() メソッドは、可能な限りファイルのすべてのメタデータを保存する追加機能を提供します。その他の特性は shutil.copy() メソッドと同じです。宛先にはファイルまたはディレクトリの両方を指定できます。宛先がディレクトリの場合、ファイルはコピー元のファイル名と同じ名前でコピーされます。
# Import shell utility module import shutil # Copy the content of source_file.txt to destination_file.txt shutil.copy2('source_file.txt', 'destination_file.txt')
私はテストを自動化する際にこのメソッドを使用しました。このメソッドは、ファイルの内容と関連するメタデータのほとんどをコピーするため、グラフィカル ファイル マネージャーでキーボード ショートカットを使用してファイルをコピー アンド ペーストするのと同じ結果をプログラムで達成でき、また、それとほぼ同じ結果を得ることができます。グラフィカル ファイル マネージャーでマウスを使用した一般的なコピー アンド ペースト操作の動作を再現します。
shutil.copyfile(source, destination, *, follow_symlinks=True)
このメソッドを使用すると、ファイルのコンテンツはメタデータなしでソースから宛先にコピーされます。ソースと宛先はパスのようなオブジェクトまたは文字列である必要があります。宛先パスではファイルへのパスのみを指定できますが、ディレクトリへのパスは指定できません。
# Import shell utility module import shutil # Copy the content of source_file.txt to destination_file.txt shutil.copyfile('source_file.txt', 'destination_file.txt')
shutil.copyfileobj(fsrc, fdst, length)
このメソッドは、ソース ファイル オブジェクトの内容を宛先ファイル オブジェクトにコピーします。ソースと宛先はファイルのようなオブジェクトである必要があります。メタデータは保持されず、値も返されません。オプションの長さパラメータは、バッファ サイズの整数値を指定します。
# Import shell utility module import shutil # Create file objects source_file_object = open("../hello.txt", "r") destination_file_object = open("CopyFile/copyFalseSrcPath.txt", "w") # Copy the content of the file object to another file object shutil.copyfileobj(source_file_object, destination_file_object)
各メソッドはファイル操作のさまざまな側面を提供し、さまざまなテストのニーズを満たす柔軟性と能力を提供します。 Python の shutil モジュールは、ソフトウェア テストにおける効率的なファイル操作に不可欠なツールを提供します。
テストを自動化する際に役立つ、その他の一般的に使用されるユーティリティ関数は次のとおりです。
その他のユーティリティ関数と詳細な説明は、公式ドキュメントに記載されています。
Python の shutil モジュールは、ソフトウェア テストだけでなく、バージョン管理と展開、データ サイエンスと機械学習、IT とシステム管理、研究と学術など、ソフトウェア開発のさまざまな分野にわたって多用途のツールセットとして機能します。詳細
Shutil をテスト プロセスに統合することで、最小限のコードで複雑なファイル操作を実行できるため、時間と労力が節約され、高品質のソフトウェアの開発に集中できるようになります。
以上が自動テスト用の Python の shutil モジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。