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 ...
随机推荐
- Zeroc Ice Slice语言使用 HelloWorld
Slice介绍 为了开发多语言支持的RPC服务,需要一种中立的新语言来定义这个服务接口,以便各个编程语言能够准确无误地理解和翻译接口,为此Ice设计了Slice语言.Ice开发的第一步 ...
- (Tomcat)服务器之web应用的虚拟目录映射和主机搭建
首先来了解一下web的虚拟目录映射和主机搭建的知识 第一:web的虚拟目录映射 首先我们要知道什么叫做web的虚拟目录映射,这个很好理解的,就是将我们本地硬盘上的web应用映射出一个供外界用户访问的地 ...
- 使用dom4j技术对xml文档进行增删改练习(一)
整个流程如下面代码所以,并对一些重要代码意义做出详细解释: import java.io.File; import java.io.FileOutputStream; import org.dom4j ...
- Cocos2D:塔防游戏制作之旅(一)
原文地址:http://www.raywenderlich.com/37701/how-to-make-a-tower-defense-game-tutorial 由Pablo Ruiz写的入门教程, ...
- javascript之JSON引入
JSON: JavaScript Object Notation JavaScript 对象表示法. 由于现在很多在服务器获取数据,很多都涉及json数据格式,因此学习json非常有必要. * 语 ...
- 【shell脚本练习】网卡信息和简单日志分析
题目 1.写一个脚本getinterface.sh,脚本可以接受参数(i,I,a),完成以下任务: (1)使用以下形式:getinterface.sh [-i interface|-I IP|-a] ...
- 【一天一道LeetCode】#70. Climbing Stairs
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 You are ...
- NSString/NSMutable字符串——韩俊强…
1.OC基本数据类型(简单铺垫) // NSInteger 在64 位下相当于long,在非64位下相当于 int: // CGFloat 在64位下相当于double 在非64位下相当 ...
- [WinForm]C# .net防止一个程序(WinForm)重复运行的方法。
最近比较忙,邮件预警系统暂停了没时间去处理,临时处理:直接执行exe文件! 可是问题来了: 我点击了两次,原来几乎在同时执行这个进程,我在程序中有线程时间睡眠2秒一次等待队列,打开进程果然两个MAIL ...
- Mahout朴素贝叶斯文本分类
Mahout朴素贝叶斯文本分类算法 Mahout贝叶斯分类器按照官方的说法,是按照<Tackling the PoorAssumptions of Naive Bayes Text Classi ...