Django Unittest сталкивается с ошибкой
Среда: Intellij PyCharm, Python Django, Sqlite3
Я использую стандартный проект установки Django. Я пытаюсь написать несколько юнит-тестов, но сталкиваюсь со следующей ошибкой. После некоторых исследований я оказался здесь.
Конфигурация БД
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 ответа
Я столкнулся с той же проблемой в PyCharm. Мой конфиг БД находится в файле config.settings_dev
, По умолчанию PyCharm не знает об этом.
Чтобы решить это,
- Откройте настройки запуска / отладки PyCharm в меню
Run
->Edit Configurations
- расширять
Templates
, затемDjano tests
, - Добавить переменную среды
DJANGO_SETTINGS_MODULE
со значениемconfig.settings_dev
(замените его своим собственным файлом настроек)
- Удалите все существующие конфигурации в
Django tests
С тестом Django вам не нужна эта часть:
if __name__ == '__main__':
unittest.main()
вы просто запускаете тесты с python manage.py test
команда.