-
Django 에서 pytest 사용하기Django 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 로 실행해보면,
다음과 같이 정상 테스트 되는 것을 확인할 수 있다.
참조 사이트
- Jihun's Development Blog - https://cjh5414.github.io/pytest-django-tutorial/
'Django' 카테고리의 다른 글
Django ModelForm 에서 create, update 개발 (0) 2021.04.15 Django CharField 에서 ForeignKey 로 변경 (0) 2021.04.14 Django 각 일자별로 특정 필드 sum 하기 (0) 2020.06.16 Django에서 WhiteNoise 사용하기 (0) 2019.07.11 Django template tag if 문에서 변수끼리 비교 (0) 2019.07.11