2017-09-20 38 views
0

當我做測試,我得到了一個錯誤,不適用遷移。我得到這個錯誤在測試

Operations to perform: 
    Apply all migrations: admin, app, auth, contenttypes, sessions 
Running migrations: 
    No migrations to apply. 

我在test.py

class UserModelTests(TestCase): 
    def test_is_empty(self): 
     queryset = User.objects.order_by('user_id').values()[:2] 
     expected = [ 
      {'name': 'Tom', 'user_id': 1, 'nationarity': 'America', 'dormitory': 'A', 'group': 3} 
     ] 
     for idx, item in enumerate(expected): 
      self.assertDictEqual(item, queryset[idx]) 

我閱讀文檔和其他網站上寫道,我發現燈具&的setUp ()也許是需要的,但我無法理解如何編寫它。我應該如何解決這個問題?我應該在這段代碼中添加什麼? 我使用命令./manage.py test

+0

您使用什麼命令來運行測試?您需要將其添加到問題中。歡呼聲 – dspacejs

+0

@mightyspaj我使用命令'./manage.py test' – user8634222

回答

0

您並未面臨錯誤,而是正在應用數據庫遷移的響應(非您的情況)。如果您使用./manage.py migrate命令,則會看到相同的響應。

當您對模型結構進行修改時,必須調用./manage.py makemigrations命令。這些makemigrations會在您的app/migrations目錄中創建遷移文件。這些文件用於 將新的遷移應用到實際的數據庫(或恢復到以前的狀態)。

消息No migrations to apply意味着沒有這些遷移文件還沒有應用於數據庫。當調用該命令時,將針對INSTALLED_APPS中列出的模塊執行遷移。

如果測試已全部執行和斷言失敗,測試錯誤看起來是這樣的:

Testing started at 9:45 ... 
Creating test database for alias 'default'... 
System check identified no issues (0 silenced). 

Failure 
Traceback (most recent call last): 
    File "/home/edwin/git/portfolio/backend/apps/projects/tests.py", line 114, in test_project_link_datetime_modified_on_update 
    self.assertNotEqual(None, None) 
AssertionError: None == None 

Destroying test database for alias 'default'... 
Process finished with exit code 1 

如果測試成功,可能是這樣的:

./manage.py test 
Creating test database for alias 'default'... 
System check identified no issues (0 silenced). 
........................ 
---------------------------------------------------------------------- 
Ran 24 tests in 0.208s 

OK 

如果你沒有看到任何的這些,你很可能不正確地執行你的測試。請確保您已添加包含這些測試的應用程序已添加到您的settings.py文件中的INSTALLED_APPS。嘗試運行測試./manage.py test或您可以使用的特定應用程序./manage.py test <app_name>

相關問題