자동화된 테스트를 위한 Python의 Shutil 모듈

王林
풀어 주다: 2024-08-21 15:41:38
원래의
376명이 탐색했습니다.

Python

소개

소프트웨어 개발의 동적 영역에서는 자동화된 테스트를 통해 애플리케이션 품질을 보장하는 것이 중요합니다. 자동화된 테스트에는 특정 파일 및 디렉터리 설정이 필요한 수많은 테스트 실행이 포함됩니다. 테스트 환경을 효율적으로 설정하고 해체하는 것은 이 프로세스에서 중요한 부분이며, 올바른 도구가 없으면 지루하고 오류가 발생하기 쉬운 작업인 경우가 많습니다.

작업을 단순화하는 데 적합한 도구를 찾는 것은 큰 변화를 가져올 수 있습니다. Shutil로 알려진 표준 유틸리티 모듈은 Shell Utility의 약어입니다. 테스트 환경 관리를 단순화할 수 있는 파일 및 디렉터리 복사, 이동 및 제거를 위한 높은 수준의 파일 작업을 제공합니다. 이 블로그에서는 quitil 모듈이 자동화된 소프트웨어 테스트에서 파일 작업을 간소화할 수 있는 방법을 설명합니다.

각 테스트가 올바른 환경에서 시작되도록 하려면 설정 프로세스를 자동화하여 일관되고 격리된 테스트 환경을 조성해야 합니다.

Shutil 시작하기

Shutil 모듈은 Python 표준 라이브러리의 일부이므로 추가로 설치할 필요가 없습니다. 스크립트 시작 부분에서 가져오기만 하면 됩니다.

# Import shell utility module
import shutil
로그인 후 복사

필수 파일 복사 방법

애플리케이션을 테스트하는 동안 특정 데이터 파일 세트가 필요한 경우가 많습니다. 파일을 수동으로 복사하는 대신, 일반적인 네 가지 방법을 사용하면 shutdown 모듈을 사용하여 파일을 쉽고 효율적으로 복사할 수 있습니다.

  1. shutil.copy()
  2. shutil.copy2()
  3. shutil.copyfile()
  4. shutil.copyfileobj()

1.shutil.copy() 메소드

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')
로그인 후 복사

2. shutdown.copy2() 메소드

shutil.copy2(source, destination, *, follow_symlinks=True)
로그인 후 복사

shutil.copy2() 메서드는 파일의 모든 메타데이터를 보존하는 추가 기능을 제공합니다. 다른 특징은 shutdown.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')
로그인 후 복사

그래픽 파일 관리자에서 키보드 단축키를 사용하여 파일을 복사하고 붙여넣는 것과 동일한 결과를 프로그래밍 방식으로 얻을 수 있도록 대부분의 관련 메타데이터와 함께 파일 콘텐츠를 복사하므로 테스트를 자동화하는 동안 이 방법을 사용했습니다. 그래픽 파일 관리자에서 마우스를 사용하여 일반적인 복사 및 붙여넣기 작업 동작을 재현합니다.

3. shutdown.copyfile() 메소드

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')
로그인 후 복사

4. quitil.copyfileobj() 메서드

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)
로그인 후 복사

일반적인 실수 방지:

  • shutil.copy(), quitil.copy2() 및 quitil.copyfile()에서는 소스와 대상이 동일한 경로를 지정할 수 없습니다. 소스와 대상이 동일한 파일 경로를 지정하면 "SameFileError" 예외가 발생합니다. 이 오류는 quitil.copyfileobj()에서 발생하지 않습니다. 대상 파일이 이미 존재하는 경우 이를 덮어쓰기 때문입니다.
  • 소스가 존재하지 않는 파일의 경로를 지정하면 "FileNotFound" 오류가 발생합니다.

결론

각 방법은 파일 작업의 다양한 측면을 제공하여 다양한 테스트 요구 사항을 충족할 수 있는 유연성과 성능을 제공합니다. Python의 shutdown 모듈은 소프트웨어 테스트에서 효율적인 파일 작업을 위한 필수 도구를 제공합니다.

  • shutdown.copy: 권한을 포함한 기본 파일 복사에 적합합니다.
  • shutdown.copy2: 타임스탬프를 포함한 대부분의 메타데이터와 함께 파일을 복사하는 데 적합합니다.
  • shutdown.copyfile: 메타데이터 없이 빠르고 간단한 콘텐츠 복사에 가장 적합합니다.
  • shutdown.copyfileobj: 파일과 유사한 객체 간의 정확한 복사를 가능하게 합니다.

테스트 자동화에 도움이 될 수 있는 일반적으로 사용되는 유틸리티 기능은 다음과 같습니다.

  1. shutdown.mkdirs(): 재귀적으로 디렉터리를 생성합니다. 파일을 테스트하거나 정리하는 데 필요한 디렉토리 구조를 설정하는 데 유용합니다.
  2. shutdown.copytree(): 전체 디렉터리 트리를 반복적으로 복사합니다. 모든 파일과 하위 디렉터리를 포함한 복잡한 디렉터리 구조를 복제하여 테스트 또는 배포를 위한 환경을 생성하거나 백업하는 데 적합합니다.
  3. shutdown.rmtree(): 디렉터리 트리를 반복적으로 삭제합니다. 테스트 후 정리하거나 임시 디렉토리 및 해당 내용을 완전히 제거하는 데 필수적입니다.
  4. shutdown.move(): 파일이나 디렉터리를 다른 위치로 이동합니다. 파일 시스템 내에서 파일이나 디렉터리를 효율적으로 재배치하여 구성이나 배포 프로세스를 용이하게 합니다.
  5. shutdown.make_archive(): 디렉터리와 해당 콘텐츠의 아카이브(예: AIP 또는 TAR)를 생성합니다. 배포 또는 백업 목적으로 디렉터리를 패키징하는 데 유용합니다.

더 많은 유틸리티 기능과 자세한 설명은 공식 문서에서 확인할 수 있습니다.

Python의 Shutil 모듈은 소프트웨어 테스트뿐만 아니라 버전 제어 및 배포, 데이터 과학 및 기계 학습, IT 및 시스템 관리, 연구 및 학계 등 소프트웨어 개발의 다양한 분야에서 다목적 도구 세트 역할을 합니다. 더.

Shutil을 테스트 프로세스에 통합하면 최소한의 코드로 복잡한 파일 작업을 수행할 수 있어 시간과 노력을 절약하고 고품질 소프트웨어 개발에 집중할 수 있습니다.

위 내용은 자동화된 테스트를 위한 Python의 Shutil 모듈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿