2014-09-27 191 views
2

我正在運行Django==1.7psycopg2==2.5.4,我無法運行任何測試。無法測試django 1.7應用程序

當我試圖(通過運行./manage test <app>)來運行我的任何Django的測試用例,我得到以下錯誤:

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', 
    } 
} 

用戶我正在使用(系統是Ubuntu 14.04)具有完整的postgres管理員權限,我可以成功地手動創建/刪除數據庫:

(env)[email protected]:~$ createdb test_mydb 
(env)[email protected]:~$ dropdb test_mydb 
(env)[email protected]:~$ 

我的模型遷移似乎很好 - 我可以刪除數據庫,成功運行遷移和我的Web應用程序功能很好 - 我只是不能運行測試。

我在同一臺機器上有另一個django 1.7項目,使用相同的基本postgres數據庫設置,作爲同一用戶運行並且測試運行良好。

任何想法可以阻止測試運行?

+1

通過消除過程,我確定這與['djorm-ext-pool'](https://github.com/djangonauts/djorm-ext-pool)應用程序有關。當我從'INSTALLED_APPS'中刪除'djorm_pool'時,我不會再出錯。 – dgel 2014-09-27 16:47:58

+0

這是適合自我回答,做得好的工作。它一定是建立一個交易太早。 – 2014-09-28 01:26:12

回答

0

這是由我的項目造成的,包括djorm-ext-pool應用程序。從INSTALLED_APPS中刪除djorm_pool可解決問題。

應用程序必須在django測試運行器創建測試數據庫之前啓動事務。

相關問題