我有一个Django项目,我有点像新手.我有以下PyUnit测试尝试将对象保存到Postgresql数据库:
import unittest
from foo.models import ObjectType
class DbTest(unittest.TestCase):
def testDBConnection(self):
object_type = ObjectType()
object_type.name = 'Test Object'
object_type.description = 'For testing purposes'
object_type.save()
我的数据库设置如下:
DATABASE_ENGINE = 'postgresql_psycopg2'
DATABASE_NAME = 'FOO'
DATABASE_USER = 'username'
DATABASE_PASSWORD = 'password'
DATABASE_HOST = 'localhost'
DATABASE_PORT = '5432'
我为我的项目运行了python manage.py syncdb,它运行成功,所以我的数据库应该正确设置.但是,当我尝试运行上述单元测试时,我收到以下错误:
File
“C:\Python26\lib\site-packages\django\db\backends\dummy\base.py”,
line 15, in complain
raise ImproperlyConfigured, “You haven’t set the DATABASE_ENGINE
setting yet.” ImproperlyConfigured:
You haven’t set the DATABASE_ENGINE
setting yet.
有没有人遇到过像这样的问题?如果是的话,任何关于从哪里开始的建议?谢谢!
解决方法:
这可能是因为你直接运行测试,即只是python testfile.py.这样您就可以有效地绕过所有Django机制并直接使用Model类.
缺点是,DB后端没有自动设置(由Django加载settings.py并连接到相应的DB),因此您遇到的错误.
我想有一个解决这个问题的方法,但它确实需要内部Django工作的知识.
相反,你应该做的是通过Django的测试框架(check out the documentation)启动你的测试.它将负责正确设置数据库连接等.还有一些时髦的功能,如测试夹具.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。