如何对Postgre数据库运行Django单元测试

时间:2019-03-08 00:11:07

标签: python django postgresql

我正在使用coverage.py和django-nose来运行单元测试。一切都与“默认” sqlite数据库一起正常工作。但是,当我将其换成postgre数据库时,出现以下错误:

django.db.utils.ProgrammingError:关系“ authentication_user”不存在

在test_settings.py中:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'HOST': 'localhost',
            'PORT': 5432,
            'NAME': 'testing_db',
            'USER': 'user_name',
            'PASSWORD': 'password'
        }
}

用于运行测试的命令(位于“ tests”文件夹中):

coverage run manage.py test tests

奇怪的是,如果我按如下方式运行单个TestCase,则测试运行良好(错误仅在运行一系列测试时发生):

coverage run manage.py test tests.test_something

这里有什么问题的想法吗?

1 个答案:

答案 0 :(得分:0)

完成项目设置后,然后进入ADMIN页面,您必须执行以下命令:

  

python manage.py createsuperuser

由于您已将数据库切换为postgres,因此应从项目根文件夹运行命令,以使用

  

manage.py

脚本,并创建一个新的超级用户。 之后,您应该运行到新数据库的迁移并完成。 让我知道进展如何。

ref:python superuser doc