2013-02-13 42 views
1

我的測試無法正常工作。如果我嘗試蟒蛇manage.py測試應用程序的名字我有這樣的錯誤:如何使用migrate appname運行測試 - 結果?

! You *might* be able to recover with: = DROP TABLE "appname_userprofile"; [] 
    = DROP TABLE "appname_table2"; [] 
    = DROP TABLE "appname_table3"; [] 

! The South developers regret this has happened, and would 
! like to gently persuade you to consider a slightly 
! easier-to-deal-with DBMS (one that supports DDL transactions) 
! NOTE: The error which caused the migration to fail is further up. 
Error in migration: content:0015_initial 
django.db.utils.DatabaseError: table "appname_userprofile" already exists 

如何運行我python manage.py test appname

manage.py migrate appname --fake 

回答

3

你必須編寫自定義的測試運行,以選擇性添加--fake個人據我所知,遷移。

你應該修正你的數據庫遷移 - 看起來你有兩個試圖創建同一個表的遷移。

南希望運行所有的遷移,以便在開始測試之前,爲了建立一個初始數據庫,現在它不能這樣做。

您可以禁用南完全單元測試,如果你把這個在您的settings.py文件(reference):

SOUTH_TESTS_MIGRATE = False 

如果你這樣做,那麼Django的測試運行將只根據創建測試數據庫中的目前的模型,而不是運行遷移來構建它。

相關問題