2010-01-04 1 views
1

나는 데이터베이스 스키마와 데이터가 부과 된 Django1.1 프레임 워크를 사용하여 웹 애플리케이션을 구축하고있다. (사실 - db는 이미 존재한다. PostgreSQL). 모델을 이미 작성 했으므로 이제는 단위 테스트를 수행하고 싶습니다.레거시 데이터베이스로 django 앱 테스트 - 테스트 당 db 재 작성을 피하는 방법?

문제 : 테스트 러너는 모든 테스트 방법 후에 데이터베이스를 파괴하고 (모델의 정보를 사용하여) 데이터베이스를 재구성하지만 바람직하지 않습니다. 적어도 스키마를 항상 보존하고 싶습니다. 데이터 정리가 허용됩니다. 이 동작을 얻을 수있는 좋은 방법이 있습니까?

(하나의 솔루션은 설정/수동으로 모든 것을 청소, 순수 유닛 테스트 모듈을 사용하는 것입니다,하지만 불만족의)

답변

2

몇 달 전에 처음 시도했지만 몇 달 전에 나타났습니다. 한 달 전에 등장했기 때문에 찾을 수 없었습니다. this topic을 찾았습니다. 그 결과 django-test-utils으로 연결됩니다. persistent database test runner (예 : python manage.py quicktest)이 내 사례를 해결합니다 (또한 일반적으로 좋은 앱 인 것 같습니다). 또한 내 요구에 맞게 settings.py에서 TEST_DATABASE_NAME 옵션을 조정해야했습니다.

0

이 당신이 단지 잠재적 인 대체 행동을 요구하고있는 행동을 제공하지 않습니다

실제 레거시 데이터베이스에 대한 통합 테스트를 배포하고 실행하는 동안 SQLite 데이터베이스에 대해 단위 테스트를 실행합니다. DB 엔진이 작동하도록 전환하는 작은 구성 변경입니다. 그것은 더 빨리 끝나고 내가하고있는 다른 일을 clobbering하지 않습니다.

+0

나에게 도움이되지는 않을 것이다. (특히 레거시 db <-> 새로운 장고 모델) 단위 테스트를 사용하여 매핑 유효성을 검사하고 싶다. 따라서 SQLite로 전환하거나 장고가 모델의 스키마 정보를 사용하여 구성하도록한다. 그것을 망칠 것입니다. 그냥 다른 유스 케이스. 게시 해 주셔서 감사합니다. – gorsky