기존 테스트 데이터베이스를 사용하여 테스트를 실행하고 Django에서 테스트를 실행할 때마다 데이터베이스를 만들고 삭제할 수 없도록하고 싶습니다. 이것이 가능한가?장고 테스트가 매번 빌드하는 대신 장고 테스트에 사용할 데이터베이스를 지정하려면 어떻게합니까?
답변
그것은 여기에, 가능 방법입니다 :
1) 자신의 테스트 러너는 방식을 볼 수 here 보일 정의합니다. default test runner에서 사용자 정의 테스트 러너보기 위해
2), 그냥 복사 코드 과거와 단지이 줄을 주석 처리 할 수 있습니다 테스트 데이터베이스를 파괴 할 책임이 connection.creation.destroy_test_db(old_name, verbosity)
을, 그리고 난 당신의 connection.creation.create_test_db(..)
줄을 추가해야한다고 생각 이 어쩌면 같은 것을 제외하고 시도 :
try:
# Create the database the first time.
connection.creation.create_test_db(verbosity, autoclobber=not interactive)
except ..: # Look at the error that this will raise when create a database that already exist
# Test database already created.
pass
3) 테스트 러너에 setting.py에 TEST_RUNNER 바운드.
4) 이제이 같은 테스트 실행 ./manage.py 테스트
그래도 괜찮아 보이지만 로컬 테스트 db에 연결을 설정해야합니다. –
@Ryan Detzel : 나는 방금 테스트가 실행되는 처음 만들 때 테스트 데이터베이스 위의 코드로 생각하는 귀하의 질문에 대한 자세한 내용은 내 대답을 편집 네,이 테스트 데이터베이스는 장고에 의해 원자 적으로 만들어집니다 여기보세요 : http://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs#the-test-database – mouad
@mouad, 조명기를로드하거나 플러시하지 않도록 구성 할 수 있습니까? –
사용하는 장고> = 테스트 실행 사이의 테스트 데이터베이스를 유지합니다 --keepdb 1.8
python manage.py test --keepdb
. 이렇게하면 작성 및 삭제 작업을 건너 뛰는 장점이 있습니다. 특히 대규모 테스트 스위트에서 테스트를 실행할 시간을 크게 단축 할 수 있습니다. 테스트 데이터베이스가 존재하지 않으면 첫 번째 실행시 작성되고 이후의 각 실행마다 보존됩니다. 적용되지 않은 마이그레이션은 테스트 스위트를 실행하기 전에 테스트 데이터베이스에도 적용됩니다.
어떻게 Django 1.6을 위해 ?? 어떤 비슷한 방법이 있습니까 ??? –
- 1. 장고 : 대신 %의
- 2. 장고 대신 반환 결과
- 3. 장고
- 4. 장고 - 모델 데이터베이스를 지정하는 방법?
- 5. 기존 데이터베이스를 장고 앱에 적용하십시오.
- 6. 장고 :
- 7. 장고 : manyToManyField 대신 ManyRelatedManager가 필요합니다.
- 8. 사용할 장고 버전을 어떻게 지정합니까?
- 9. 장고 그룹 모델을 확장하려면 어떻게합니까?
- 10. 장고
- 11. 장고 장고 템플릿에서
- 12. 장고 : 내 장고 프로젝트에서 식별자
- 13. 장고 url.py 내 장고 프로젝트에서
- 14. 장고 :
- 15. 장고 :
- 16. 장고
- 17. 장고
- 18. 장고 -
- 19. /장고
- 20. 장고
- 21. 장고
- 22. 장고
- 23. 장고
- 24. 장고 :
- 25. 장고
- 26. 장고
- 27. 장고
- 28. 장고
- 29. 장고
- 30. ... 장고
왜 그렇게하고 싶습니까? 또한 데이터베이스 생성을 테스트하고 싶습니다 ... –
빌드하는 데 몇 시간이 걸릴 때가 아닙니다. –
테스트를 위해 다른 DB 엔진을 선택할 수 있습니다 (sqlite는 DB 생성이 더 빠름) –