运行 来自 Django 库的单元测试,没有 manage.py

Running unit tests from Django libraries without manage.py

我正在尝试为依赖于 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.

您看到此错误是因为 django 无法确定您的设置文件在哪里。

当您使用 manage.py test django 时,设置设置的路径。

如果您想 运行 在不同的环境中进行测试,您需要定义一个设置方法来设置 DJANGO_SETTINGS_MODULE 并创建测试数据库。

您最好创建一个删除测试数据库的拆卸。

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