공통 테스트 디렉터리 구조에서 단위 테스트를 실행하는 방법
Python에서는 단위 테스트를 별도의 테스트 디렉터리에 구성하는 것이 일반적입니다. . 그러나 이로 인해 이러한 테스트를 어떻게 효율적으로 실행할 수 있는지에 대한 의문이 제기됩니다.
문제
테스트 디렉터리 내에서 python test_antigravity.py를 실행하려고 하면 모듈이 경로에 없기 때문에 반중력 모듈이 실패합니다. PYTHONPATH를 수정하거나 다른 검색 경로 트릭을 사용하는 것이 가능할 수 있지만 특히 단순히 테스트 결과를 확인하려는 사용자의 경우 단순성이 부족합니다.
해결책
권장되는 접근 방식은 unittest 명령줄 인터페이스를 활용하는 것입니다. TestLoader 클래스는 필요한 디렉토리를 sys.path에 추가하여 경로 문제를 해결합니다.
예를 들어 다음과 같은 디렉토리 구조에서:
new_project ├── antigravity.py └── test_antigravity.py
다음을 사용하여 테스트를 실행할 수 있습니다.
$ cd new_project $ python -m unittest test_antigravity
제공된 것과 같은 디렉토리 구조의 경우:
new_project ├── antigravity │ ├── __init__.py │ └── antigravity.py └── test ├── __init__.py └── test_antigravity.py
다음을 수행할 수 있습니다. __init__.py 파일이 포함된 패키지로 반중력 및 테스트를 모두 선언하여 비슷한 기능을 얻을 수 있습니다. 테스트 모듈에서는 평소와 같이 반중력 패키지와 해당 모듈을 가져올 수 있습니다.
특정 테스트 실행
test_antigravity.py와 같은 단일 테스트 모듈을 실행하려면 :
$ cd new_project $ python -m unittest test.test_antigravity
개별 테스트 사례를 실행하거나 방법:
$ python -m unittest test.test_antigravity.GravityTestCase $ python -m unittest test.test_antigravity.GravityTestCase.test_method
모든 테스트 실행
테스트 검색을 사용하여 모든 테스트를 자동으로 실행할 수 있습니다. 이를 위해서는 테스트 모듈과 패키지 이름이 test*.py여야 합니다(-p 또는 --pattern 플래그를 통해 사용자 정의 가능).
$ cd new_project $ python -m unittest discover
단순함을 선호하는 사용자의 경우 다음을 실행하도록 지시할 수 있습니다. 명령:
To run the unit tests, do: $ python -m unittest discover
위 내용은 Python의 별도 테스트 디렉터리에서 단위 테스트를 효율적으로 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!