zoukankan      html  css  js  c++  java
  • django 自动化测试的故障排查

    【问题背景】

      django使用mysql做为后台数据库、在使用django的自动化测试命令test时报如下错误

    python3 manage.py test polls
    Creating test database for alias 'default'...
    Got an error creating the test database: (1044, "Access denied for user 'appuser'@'127.0.0.1' to database 'test_tempdb'")

      报错非常明显了appuser@'127.0.0.1'这个用户没根据

    【收集信息与问题分析】

      1、django的数据库配置信息如下

    #以下是使用MySQL的配置
    DATABASES = {
        'default':{
            'ENGINE': 'django.db.backends.mysql', # 后台数据库的类型
            'HOST': '127.0.0.1',                  # 后台数据库所在主机的ip我这里用本机
            'PORT': 3306,                         # 后台数据库所监听的端口
            'USER': 'appuser',                    # 连接数据库的用户名
            'PASSWORD': '123456',                 # 连接数据库的密码
            'NAME': 'tempdb',                     # 数据库中的schema名字
        }
    }

      从这里可以看出来test_tempdb并不是真正的后台数据库、它是一个在测试时临时用的数据库、那么问题就解决了我们要给appuser一个相对比较大的权限

      就可以了,在这里我暴力一点直接给它一个all权限

    【解决方案】

      给appuser赋权

    grant all on *.* to 'appuser'@'127.0.0.1';

    【验证】

    python3 manage.py test polls
    Creating test database for alias 'default'...
    System check identified no issues (0 silenced).
    E
    ======================================================================
    ERROR: test_was_published_recently_with_future_question (polls.tests.QuestionModelTests)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/Users/jianglexing/Desktop/mysite/polls/tests.py", line 17, in test_was_published_recently_with_future_question
        time = datetime.now() + datetime.timedelta(days=30)
    AttributeError: module 'datetime' has no attribute 'now'
    
    ----------------------------------------------------------------------
    Ran 1 test in 0.004s
    
    FAILED (errors=1)
    Destroying test database for alias 'default'...
  • 相关阅读:
    关于网页代码加密解密保护,保障页面安全
    DS--知识积累
    知识积累
    Nested DollsHDU1677
    CF335B
    HDU2385Stock
    滚动数组处理数据很大的公共子序列问题
    HDU4635
    HDU4638
    HDU4639
  • 原文地址:https://www.cnblogs.com/JiangLe/p/9537257.html
Copyright © 2011-2022 走看看