Django에서 테스트 디렉토리가 있는 앱에서 특정 테스트 케이스 실행하기 (Python, Django, 단위 테스트 관련)
방법 1: manage.py를 사용하여 특정 테스트 실행
- 커맨드 라인에서 앱 디렉토리로 이동합니다.
- 다음 명령을 사용하여 특정 테스트 케이스를 실행합니다.
python manage.py test <app_name>.<test_module>.<test_class>.<test_method>
예를 들어, myapp
앱의 tests
디렉토리에 mytests.py
라는 테스트 모듈이 있고, 해당 모듈에 MyTestClass
라는 테스트 클래스와 test_a_method
이라는 테스트 메서드가 있다고 가정합니다. 이 테스트 케이스를 실행하려면 다음 명령을 사용합니다.
python manage.py test myapp.mytests.MyTestClass.test_a_method
- 여러 테스트 케이스를 실행하려면 공백으로 구분하여 나열합니다.
python manage.py test myapp.mytests.MyTestClass.test_a_method myapp.mytests.MyOtherTestClass.test_another_method
방법 2: ./manage.py test --pattern을 사용하여 특정 패턴으로 일치하는 테스트 실행
- 다음 명령을 사용하여 특정 패턴으로 일치하는 테스트를 실행합니다.
python manage.py test --pattern <pattern>
예를 들어, test_a
로 시작하는 모든 테스트 케이스를 실행하려면 다음 명령을 사용합니다.
python manage.py test --pattern test_a
.
을 사용하여 특정 하위 디렉토리에 있는 테스트를 실행할 수 있습니다. 예를 들어,tests/subdirectory
디렉토리에 있는 모든 테스트를 실행하려면 다음 명령을 사용합니다.
python manage.py test tests/subdirectory
방법 3: IDE를 사용하여 테스트 실행
대부분의 IDE는 테스트 실행을 위한 GUI 도구를 제공합니다. IDE에서 테스트 케이스를 찾아 실행 버튼을 클릭하면 됩니다.
팁:
- 테스트 실행 속도를 높이려면
--failfast
플래그를 사용하여 첫 번째 실패한 테스트 케이스 후에 테스트 실행을 중지할 수 있습니다. - 더 많은 옵션과 사용 방법については
manage.py help test
를 참조하십시오.
예제 코드
# myapp/tests/mytests.py
class MyTestClass(TestCase):
def test_a_method(self):
# 테스트 코드 작성
def test_another_method(self):
# 테스트 코드 작성
# 커맨드 라인에서 다음 명령을 사용하여 test_a_method 테스트 케이스 실행
python manage.py test myapp.mytests.MyTestClass.test_a_method
# myapp/tests/mytests.py
class MyTestClass(TestCase):
def test_a_method(self):
# 테스트 코드 작성
def test_another_method(self):
# 테스트 코드 작성
# 커맨드 라인에서 다음 명령을 사용하여 test_a로 시작하는 모든 테스트 케이스 실행
python manage.py test --pattern test_a
Django에서 테스트 디렉토리가 있는 앱에서 특정 테스트 케이스를 실행하는 대체 방법
discover 모듈 사용
discover
모듈을 사용하면 특정 기준에 따라 테스트를 실행하도록 구성할 수 있습니다. 예를 들어, 특정 앱의 모든 테스트 또는 특정 패턴으로 일치하는 모든 테스트를 실행할 수 있습니다.
from django.test import discover
# 특정 앱의 모든 테스트 실행
discover('myapp')
# 특정 패턴으로 일치하는 모든 테스트 실행
discover('tests', pattern='test_a')
Tox 사용
Tox는 Python 테스트 자동화를 위한 도구입니다. Tox를 사용하면 여러 가지 환경에서 테스트를 실행하고, 다양한 Python 버전과 패키지 버전을 사용하여 테스트를 실행할 수 있습니다.
Continuous integration 시스템 사용
Travis CI 또는 Jenkins와 같은 continuous integration 시스템을 사용하여 테스트를 자동으로 실행할 수 있습니다. 이러한 시스템은 코드 변경 내용이 발생할 때마다 테스트를 실행하고 결과를 보고할 수 있도록 합니다.
continuous integration 시스템 사용 방법에 대한 자세한 내용은 각 시스템의 문서를 참조하십시오.
python django unit-testing