Django

Django 에서 pytest 사용하기

wangkisa 2021. 6. 3. 17:33

1. pytest 설치

지난 시간 이어서 

pytest 를 사용하기 위해 새로 설치한다.

 

pip install pytest-django

pytest-django를 설치하면 자동적으로 최신버전의 pytest도 같이 설치된다. 

pytest-django pytest의 플러그인 시스템을 사용하고 특별한 설정 없이 설치 후에 바로 사용 가능하다.

 

설치 이후, pytest 란 명령어로 실행해보면

pytest

다음과 같이 django에서 설정을 해주지 않아서 오류가 발생하고 있는것을 확인된다.

 

E django.core.exceptions.ImproperlyConfigured: Requested settings, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

 

2. Django 설정에 pytest 지정하기

프로젝트 root directory에 pytest.ini 라는 파일을 생성하고 아래의 내용을 작성한다.

[pytest]
DJANGO_SETTINGS_MODULE = django_testing.settings

DJANGO_SETTINGS_MODULE 환경 변수를 설정함으로써, 원하는 --settings=yourproject.settings 옵션을 명시하는 것과 같이 local, dev, production 등을 설정할 수 있다.
기존 예전 소스 중 모델에 관한 테스트 부분은 주석 처리후,

 

pytest

로 실행해보면,

다음과 같이 warning이 뜨긴 하지만, 테스트가 성공한 것으로 나오고 있습니다.

 

여기까지가 기본적인 설정이며,

추가적으로, test 로 시작하는 다른 파일이나 test로 끝나는 파일 등을 적용하기 위해서는 다음과 같이 추가한다.

python_files = tests.py test_*.py *_tests.py

 

pytest.ini 내용

[pytest]
DJANGO_SETTINGS_MODULE = django_testing.settings
python_files = tests.py test_*.py *_tests.py

 

pytest 로 실행해보면,

다음과 같이 정상 테스트 되는 것을 확인할 수 있다.

참조 사이트