2017-04-18 219 views
1

過去幾周我一直在學習django,我嘗試使用參數化fixture和測試函數,從我的理解我可以簡單地一次運行多個測試。通過參數化測試,我試圖測試所有模型中的函數。我閱讀了文檔,但不幸的是,只要我嘗試過,我收到以下錯誤消息Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it.。我讀過有關該錯誤和可能的解決方法和我的發現是conftest.py創建autouse夾具,並把它:django參數化測試的Django_db標記

import pytest 
@pytest.fixture(autouse=True) 
def enable_db_access_for_all_tests(db): 
    pass 

可悲的是,這種變化做出0的區別,我運行測試後收到完全相同的錯誤。我也嘗試使用django_db標記來授予對數據庫的測試訪問權限,但這似乎也不起作用。

回答

0

我花了一段時間才意識到這一點,但上述WAS「工作」。如果仔細觀察錯誤,它就會改變。 Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it.仍然存在,不正確,但對我來說,無論如何,它正在運行遷移,我不希望它做,並且它在某些舊數據遷移上崩潰。給命令添加--nomigrations爲我解決了問題。