Django单元测试简明实践
1、准备数据模式,Django空库测试需要所有相关数据模式必须在Django中定义,说白了,model不能有managed=Fasle,为了解决这个问题,你必须得有一个managed全部为True的Schema代码版本。
2、准备初始化数据,当然使用fixtures固定数据集特性,这个数据集最好现存库里面查询出要用的数据,然后用Django序列化器生成所需的格式即可。
3、如permission,contenttype这类系统生成的数据,不需要做fixture,但是其中如果有你自己自定义插进去的数据,就需要做fixture,而且做的时候,不要把系统自动添加的数据做上,否则会导致测试中的系统自动添加行为失败。
4、自建permission数据的准备问题:因为permission引用的contentype数据和生产库的实际数据是有可能有区别的,主要是ID顺序不同,所以,permission的contenttypeID需要手动查找合适的contenttype,然后修改到fixtures里面
5、文本比对一定要从正确输出的HTML截取字符串,从浏览器的某些界面下copy的字符串文本比对会出错误,当然除了文本比对,django testcase还提供了其他几种结构化数据的比对方式。
6、像问题4中的数据,还有那种有及时性要求的数据,可以在Test代码中手动往数据里添加,然后再做相关的测试操作。
7、使用StaticLiveServerTestCase的时候,出现以下错误:
- Hint: Look at the output of 'django-admin sqlflush'. That's the SQL this command wasn't able to run.
- The full error: cannot truncate a table referenced in a foreign key constraint
- DETAIL: Table "users" references "analyst_analyst".
- HINT: Truncate table "users" at the same time, or use TRUNCATE ... CASCADE.
通过查看TestCase源码,在类中定义非空的available_apps列表配置,就可以解决这个问题。添加的时候,要把能用到的都添加上,否则可能会报错,TestCase没有这个问题
8、我使用的是WebDriver里面的ChromeDriver,除了pip安装selenium以外,还需要到 https://sites.google.com/a/chromium.org/chromedriver/downloads 页面下载最新的chromedriver,解压以后是个可执行文件,把那个文件扔到随便那个系统PATH目录下即可。
9、在使用StaticLiveServerTestCase的时候,又报以下错误:
- No translation files found for default language zh-cn
解决方法:在settings里面添加配置:
- LOCALE_PATHS = [BASE_DIR]
然后在这个项目根目录BASE_DIR中添加/zh-CN/LC_MESSAGES/django.po
Django单元测试简明实践的更多相关文章
- Django Channels简明实践
1.安装,如果你已经安装django1.9+,那就不要用官方文档的安装指令了,把-U去掉,直接用: sudo pip install channels 2.自定义的普通Channel的名称只能包含a- ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- django单元测试
django 单元测试小结 django 测试 从前很少写单元测试了,特别是web应用.最近不知不觉喜欢起来这个事情了,发现单元测试对于软件的模块,正交性有很大促进作用,因为函数,模块写的不合 ...
- [Django] 单元测试小记
从前很少写单元测试了,特别是web应用.最近不知不觉喜欢起来这个事情了,发现单元测试对于软件的模块,正交性有很大促进作用,因为函数,模块写的不合理,单元测试写起来就麻烦的多呀.公司的项目一直都是用Dj ...
- Spring Security简明实践及相关国际化处理
别人的都是最佳实践,因为我目前的设置没有按照参考文档推荐,还是采用DelegatingFilterProxy,所以我只能说简明实践.先贴我的applicationContext-security.xm ...
- 如何进行Django单元测试
如何进行Django单元测试 Django的单元测试使用python的unittest模块,这个模块使用基于类的方法来定义测试.类名为django.test.TestCase,继承于python的un ...
- Django入门与实践 17-26章总结
Django入门与实践-第17章:保护视图 Django 有一个内置的视图装饰器 来避免它被未登录的用户访问: 现在如果用户没有登录,将被重定向到登录页面: 现在尝试登录,登录成功后,应用程序会跳转到 ...
- Django 单元测试
mock 测试 mock 是辅助单元测试的模块,用于测试不方便调用的别人的接口.举个简单的例子,比如说,我们测试django 写的微信登录接口,正常流程下,我们需要前端拉起授权窗口,获取jscode或 ...
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
[转].NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
随机推荐
- 匿名内部类使用外面的类为什么要用final型
从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的 为 ...
- ROS(indigo)国外开源示例包括多机器人控制等基于V-Rep和Gazebo的仿真
ROS(indigo)国外开源示例包括多机器人的V-Rep和Gazebo仿真等 1 micros_swarm_framework 使用超级经典的stage. http://wiki.ros.org/m ...
- UNIX环境高级编程——守护进程列表
amd:自动安装NFS(网络文件系统)守侯进程apmd:高级电源治理Arpwatch:记录日志并构建一个在LAN接口上看到的以太网地址和ip地址对数据库Autofs:自动安装治理进程automount ...
- 《java入门第一季》之网络编程初探
由于在写有关javaweb的博客,在写到web服务器的时候需要回顾网络编程的知识,提前把网络编程放在前面写. 直接上代码解释: import java.net.InetAddress; import ...
- 【一天一道LeetCode】#93. Restore IP Addresses
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- android sensor架构
Android Sensor 架构深入剖析 作者:倪键树,华清远见嵌入式学院讲师. 1.Android sensor架构 Android4.0系统内置对传感器的支持达13种,它们分别是:加速度传感器 ...
- Leetcode_20_Valid Parentheses
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41450987 通过本文你能学到如下知识: (1)对数据结构 ...
- UIView、UIViewLayout UI_01
1.首先:在UI里面我们使用的是MRC,需要把ARC改成NO: 若学习比较吃力,可以先学习一下基础: http://blog.sina.com.cn/s/blog_814ecfa90102vuzg.h ...
- (二十五)键盘的设置与TextField细节处理
设置Return Key类型为Send并且勾选下面的复选框即可实现没有内容时禁用keyboard,有内容自动启用. 文本框左边框与文本留有间距的方法: //文本框左侧留下间距 UIView *left ...
- 【嵌入式开发】C语言 指针数组 多维数组
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21402047 . 1. 地址算数运算示例 指针算数运算 ...