Django测试运行器找不到非默认数据库连接

f

我的Django应用程序运行良好,但是Django的内置单元测试存在问题。在使用默认数据库以外的数据库的应用程序上运行Django测试运行程序时,出现错误:

python manage.py test qc
...      
File "/usr/lib64/python2.7/site-packages/django/db/utils.py", line 179, in ensure_defaults
        raise ConnectionDoesNotExist("The connection %s doesn't exist" % alias)
    ConnectionDoesNotExist: The connection other_db doesn't exist

在settings.py中:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_default',
        'USER': 'xxx',
        'PASSWORD': 'yyy',
        'HOST': os.environ["MYSQL_HOST"],
        'PORT': os.environ["MYSQL_PORT"],
    },
    'other_db': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_other',
        'USER': 'xxx',
        'PASSWORD': 'yyy',
        'HOST': os.environ["MYSQL_HOST"],
        'PORT': os.environ["MYSQL_PORT"],
    }
}

可能相关,在routers.py中:

def allow_migrate(self, db, app_label, model_name=None, **hints):

    if hints.has_key('model'):
        model = hints['model']

        if db == 'other_db':
            return model._meta.app_label == 'qc'
        elif model._meta.app_label == 'qc':
            return False
        return None
    else:
        if db == 'other_db':
            return app_label == 'qc'
        elif app_label == 'qc':
            return False

我试图在qc / tests.py中运行的测试用例:

from django.test import TestCase
from qc.models import *

class HybridTestCase(TestCase):

    def setUp(self):
        baseA = MyModel.objects.create(id='A',name="NonName")

Django版本:1.9.8。我正在CentOS 7的Docker内部运行。

f

问题是在进行测试的情况下,我已经覆盖了settings.py文件中的DATABASES字典:

if 'test' in sys.argv:
    DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3'}}

在为“ other_db”添加内存数据库之后,事情又恢复了:

if 'test' in sys.argv:
    DATABASES = {
                 'default': {'ENGINE': 'django.db.backends.sqlite3'}, 
                 'other_db': {'ENGINE': 'django.db.backends.sqlite3'}
                }  

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django测试数据库未与自定义测试运行器一起使用

来自分类Dev

测试运行器在重播期间找不到控件

来自分类Dev

在赛普拉斯测试运行器中找不到文件

来自分类Dev

在赛普拉斯测试运行器中找不到文件

来自分类Dev

Chutzpah Visual Studio测试运行程序找不到JS参考

来自分类Dev

Django migrate 尝试连接到非默认数据库

来自分类Dev

对于django单元测试,为什么有些测试运行者考虑了生产数据库,而另一些却没有呢?

来自分类Dev

对于django单元测试,为什么有些测试运行者考虑了生产数据库,而另一些却没有呢?

来自分类Dev

如何测试运行非主要方法?[Java,IntelliJ]

来自分类Dev

业力测试运行器-无法捕获Chrome

来自分类Dev

是否有PHPUnit的分层测试运行器?

来自分类Dev

多个HTML记者Karma测试运行器

来自分类Dev

业力测试运行器-无法捕获Chrome

来自分类Dev

SQL Server 2014-无法连接到本地数据库-找不到服务器

来自分类Dev

着色golang测试运行输出

来自分类Dev

作为Maven测试运行

来自分类Dev

再现ScalaCheck测试运行

来自分类Dev

Couchbase测试运行失败

来自分类Dev

Intellij测试运行历史

来自分类Dev

测试运行null和字母?

来自分类Dev

Serverspec测试运行问题

来自分类Dev

使用JUNIT测试运行AsyncHttpClient

来自分类Dev

在测试运行期间浏览

来自分类Dev

使用R#测试运行器运行ReSharper插件测试

来自分类Dev

在测试运行器中看不到新创建的文件夹中的测试-赛普拉斯

来自分类Dev

通过VSTS中的命令行测试运行器发布测试结果

来自分类Dev

使用业力测试运行器进行多种聚合物元素测试

来自分类Dev

使用业力测试运行器进行多种聚合物元素测试

来自分类Dev

使用Python中的绿色测试运行器跳过测试

Related 相关文章

  1. 1

    Django测试数据库未与自定义测试运行器一起使用

  2. 2

    测试运行器在重播期间找不到控件

  3. 3

    在赛普拉斯测试运行器中找不到文件

  4. 4

    在赛普拉斯测试运行器中找不到文件

  5. 5

    Chutzpah Visual Studio测试运行程序找不到JS参考

  6. 6

    Django migrate 尝试连接到非默认数据库

  7. 7

    对于django单元测试,为什么有些测试运行者考虑了生产数据库,而另一些却没有呢?

  8. 8

    对于django单元测试,为什么有些测试运行者考虑了生产数据库,而另一些却没有呢?

  9. 9

    如何测试运行非主要方法?[Java,IntelliJ]

  10. 10

    业力测试运行器-无法捕获Chrome

  11. 11

    是否有PHPUnit的分层测试运行器?

  12. 12

    多个HTML记者Karma测试运行器

  13. 13

    业力测试运行器-无法捕获Chrome

  14. 14

    SQL Server 2014-无法连接到本地数据库-找不到服务器

  15. 15

    着色golang测试运行输出

  16. 16

    作为Maven测试运行

  17. 17

    再现ScalaCheck测试运行

  18. 18

    Couchbase测试运行失败

  19. 19

    Intellij测试运行历史

  20. 20

    测试运行null和字母?

  21. 21

    Serverspec测试运行问题

  22. 22

    使用JUNIT测试运行AsyncHttpClient

  23. 23

    在测试运行期间浏览

  24. 24

    使用R#测试运行器运行ReSharper插件测试

  25. 25

    在测试运行器中看不到新创建的文件夹中的测试-赛普拉斯

  26. 26

    通过VSTS中的命令行测试运行器发布测试结果

  27. 27

    使用业力测试运行器进行多种聚合物元素测试

  28. 28

    使用业力测试运行器进行多种聚合物元素测试

  29. 29

    使用Python中的绿色测试运行器跳过测试

热门标签

归档