Django Unittest遇到错误

时间:2017-12-29 09:10:47

标签: django python-3.x sqlite django-unittest

环境: Intellij PyCharm,Python Django,Sqlite3

我使用标准的Django安装项目。 我尝试编写一些Unittests,但是我遇到了以下错误。 经过一番研究,我最终到了这里。

数据库配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

tests.py

代码
from django.test import TestCase as djangoTestCase
import os
import unittest

# Create your tests here.
class TestExample(djangoTestCase):

    def setUp(self):
        print('setup')
        print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

    def test_abc(self):
        self.assertEqual(1,1)

    def tearDown(self):
        print('tearDown')

if __name__ == '__main__':
    unittest.main()

这是输出

django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

我试图通过阅读文档找到错误,但没有成功。 可能是什么问题?

2 个答案:

答案 0 :(得分:1)

使用django测试你不需要这个部分:

if __name__ == '__main__':
    unittest.main()

您只需使用python manage.py test命令运行测试。

答案 1 :(得分:0)

我在PyCharm中遇到了同样的问题。我的数据库配置位于文件config.settings_dev中。默认情况下,PyCharm不知道它。

要解决它,

  1. 在菜单Run-> Edit Configurations
  2. 中打开PyCharm的“运行/调试配置”。
  3. 先展开Templates,然后再展开Djano tests
  4. 添加值为DJANGO_SETTINGS_MODULE的环境变量config.settings_dev(用您自己的设置文件替换)

PyCharm Run Config Templates

  1. 删除Django tests下的所有现有配置

enter image description here  5.在PyCharm中运行测试