2015-02-08 85 views
1

我想爲依賴Django的Python庫編寫單元測試。它們工作得很好,當我試圖運行它們的Django項目的一部分:從Django庫運行單元測試沒有manage.py

>python manage.py test mexaminer.tests 
Creating test database for alias 'default'... 
. 
---------------------------------------------------------------------- 
Ran 1 test in 0.006s 

OK 
Destroying test database for alias 'default'... 

當我嘗試自己運行它們,出現這種情況:

>python -m unittest mexaminer.tests 
Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\django\conf\__init__.py", line 38, in _set 
up 
    settings_module = os.environ[ENVIRONMENT_VARIABLE] 
    File "C:\Python34\lib\os.py", line 631, in __getitem__ 
    raise KeyError(key) from None 
KeyError: 'DJANGO_SETTINGS_MODULE' 

當我運行同樣的事情發生python -m django.utils.unittest mexaminer.tests。有沒有設置完整的Django項目來運行我的單元測試的方法?源代碼是here

+0

如果你的單元測試「依賴於」一個django項目,那麼在命令行上執行某些操作時你將不得不使用'manage.py'。 – ozgur 2015-02-08 11:36:55

+0

它有[一些Django依賴項](https://bitbucket.org/pieterdd/django-mexaminer/src/b7927793250c6a186b1ea53e7054c384a0ab627c/mexaminer/tests.py?at=unstable),但沒有任何項目特定的,我能想到的。 – Pieter 2015-02-08 11:40:39

回答

1

你看到這個錯誤,因爲django無法弄清楚你的設置文件在哪裏。

當您使用manage.py test django設置路徑的設置。

如果你想在不同的環境中運行你的測試,你需要定義一個設置方法來設置DJANGO_SETTINGS_MODULE並創建測試數據庫。

最好您將創建一個拆除測試數據庫的拆卸。

您可以使用the documentation瞭解如何操作。

相關問題