当前位置: 首页 > news >正文

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'...

 

相关文章:

  • MySQL探秘(三):InnoDB的内存结构和特性
  • Java内存管理 -JVM 垃圾回收
  • POJ3259 SPFA判定负环
  • Qt5开发及实例学习
  • 深入BUG分析
  • HTML5的优缺点
  • 2018腾讯广告算法大赛总结/Rank7-复习代码
  • Android Studio NDK:三、打包SO
  • 7×14小时陪伴,DaDaBaby核心课程升级背后到底有多少考量?
  • java中hashset重写equals方法中只比较属性值的问题
  • WPF 标题栏 右键窗口标题添加关于对话框
  • 利用矩阵快速幂转换的题目
  • 最新软件工程师薪资大揭秘!你的薪资达到平均水平了吗?
  • Java自学之路(小白向)
  • 由两个栈组成队列
  • 【刷算法】求1+2+3+...+n
  • C# 免费离线人脸识别 2.0 Demo
  • ComponentOne 2017 V2版本正式发布
  • express.js的介绍及使用
  • input实现文字超出省略号功能
  • JavaScript的使用你知道几种?(上)
  • javascript数组去重/查找/插入/删除
  • Java反射-动态类加载和重新加载
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • 安卓应用性能调试和优化经验分享
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 思考 CSS 架构
  • 微信公众号开发小记——5.python微信红包
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 用jQuery怎么做到前后端分离
  • C# - 为值类型重定义相等性
  • hi-nginx-1.3.4编译安装
  • 通过调用文摘列表API获取文摘
  • ​你们这样子,耽误我的工作进度怎么办?
  • #微信小程序:微信小程序常见的配置传值
  • %@ page import=%的用法
  • (003)SlickEdit Unity的补全
  • (1)Nginx简介和安装教程
  • (6)设计一个TimeMap
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (译)计算距离、方位和更多经纬度之间的点
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (转载)Linux 多线程条件变量同步
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 动态调用WebService + WSE + UsernameToken
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net反混淆脱壳工具de4dot的使用
  • []常用AT命令解释()
  • [Angular 基础] - 数据绑定(databinding)
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [C/C++随笔] char与unsigned char区别