2015-02-08 45 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了解如何操作。

相关问题