我正在尝试为依赖于Django的Python库编写单元测试。当我尝试将它们作为Django项目的一部分运行时,它们工作正常:
>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 :(得分:2)
您看到此错误,因为django无法确定您的设置文件在哪里。
当您使用manage.py test
时,django设置设置的路径。
如果要在不同的环境中运行测试,则需要定义设置DJANGO_SETTINGS_MODULE
并创建测试数据库的设置方法。
最好您创建一个删除测试数据库的拆卸。
您可以使用the documentation了解如何操作。