python 运行 测试:配置不当
python running test: ImproperlyConfigured
我正在尝试 运行 一些 django (1.7) 项目的睾丸。
已经在项目目录下创建了一个test_models.py
目录/tests/
。
在运行宁测试
>> python tests/test_models.py -v
错误:
django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
虽然
以下 Django 标准命令工作正常
>> python manage.py runserver
>> python manage.py shell
test_models.py
import unittest
from django.contrib.auth.models import User
from accounts.models import school
class TestAccounts(unittest.TestCase):
def setUp(self):
admin_user = User.objects.get_or_create(
username="testuser", password=111)
self.admin = admin_user[0]
self.school_name = "merucabs"
self.email = "info@merucabs.com"
def test_school(self):
print "Testing school ..."
school = School(name=self.school_name)
school.created_by = self.admin
school.updated_by = self.admin
school.save()
self.school = school
self.assertEqual(self.school.name, self.school_name)
def suite():
suite = unittest.TestSuite()
suite.addTests(unittest.makeSuite(TestAccounts))
if __name__ == '__main__':
unittest.main()
您可以 run Django tests 使用 test
命令。
./manage.py test tests/test_models
如果你想 运行 你的测试作为一个独立的脚本(即 python tests/test_models.py
),那么你必须设置 DJANGO_SETTINGS_MODULE
环境变量。从 Django 1.7 开始,您还必须调用 django.setup()
。
import django
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
django.setup()
我正在尝试 运行 一些 django (1.7) 项目的睾丸。
已经在项目目录下创建了一个test_models.py
目录/tests/
。
在运行宁测试
>> python tests/test_models.py -v
错误:
django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
虽然 以下 Django 标准命令工作正常
>> python manage.py runserver
>> python manage.py shell
test_models.py
import unittest
from django.contrib.auth.models import User
from accounts.models import school
class TestAccounts(unittest.TestCase):
def setUp(self):
admin_user = User.objects.get_or_create(
username="testuser", password=111)
self.admin = admin_user[0]
self.school_name = "merucabs"
self.email = "info@merucabs.com"
def test_school(self):
print "Testing school ..."
school = School(name=self.school_name)
school.created_by = self.admin
school.updated_by = self.admin
school.save()
self.school = school
self.assertEqual(self.school.name, self.school_name)
def suite():
suite = unittest.TestSuite()
suite.addTests(unittest.makeSuite(TestAccounts))
if __name__ == '__main__':
unittest.main()
您可以 run Django tests 使用 test
命令。
./manage.py test tests/test_models
如果你想 运行 你的测试作为一个独立的脚本(即 python tests/test_models.py
),那么你必须设置 DJANGO_SETTINGS_MODULE
环境变量。从 Django 1.7 开始,您还必须调用 django.setup()
。
import django
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
django.setup()