2014-09-27 4 views
2

Django==1.7psycopg2==2.5.4으로 실행 중이며 테스트를 실행할 수 없습니다. django 1.7 응용 프로그램을 테스트 할 수 없습니다

Creating test database for alias 'default'... 
Got an error creating the test database: CREATE DATABASE cannot run inside a transaction block 
... 
Destroying old test database 'default'... 
Got an error recreating the test database: current transaction is aborted, commands ignored until end of transaction block 

내 데이터베이스 설정

은 매우 기본적인 :

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'mydb', 
    } 
} 

사용자 내가 (./manage test <app>를 실행하여) 내 장고 테스트 케이스 중 하나를 실행하려고하면

, 나는 다음과 같은 오류가 내가 사용하고 있습니다 (우분투 14.04 시스템입니다) postgres 관리자 권한을 가지고 성공적으로 만들 수 있습니다/수동으로 db를 드롭 :

내 모델 마이그레이션이 잘된 것처럼 보입니다. 데이터베이스를 삭제하고 마이그레이션 및 웹 응용 프로그램 기능을 성공적으로 실행할 수 있습니다. 테스트를 실행할 수 없습니다.

동일한 기본 postgres 데이터베이스 설정을 사용하여 같은 시스템에서 다른 사용자와 동일한 테스트를 실행하는 django 1.7 프로젝트가 있습니다.

테스트 실행을 방해 할 수있는 아이디어가 있습니까?

+1

제거 프로세스를 통해이 프로그램이 ['djorm-ext-pool'] (https://github.com/djangonauts/djorm-ext-pool) 앱과 관련이 있음을 확인했습니다. 'djorm_pool'을'INSTALLED_APPS'에서 제거하면 더 이상 오류가 발생하지 않습니다. – dgel

+0

자기 답변에 적합하고 잘 해결되었습니다. 너무 일찍 거래를 성립시켜야합니다. –

답변

0

이것은 내 프로젝트가 djorm-ext-pool 앱을 포함하여 발생했기 때문에 발생합니다. INSTALLED_APPS에서 djorm_pool을 제거하면 문제가 해결됩니다.

django 테스트 러너가 테스트 데이터베이스를 만들기 전에 앱에서 트랜잭션을 시작해야합니다.

관련 문제