惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security @ Cisco Blogs
P
Privacy & Cybersecurity Law Blog
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
C
CERT Recently Published Vulnerability Notes
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cisco Blogs
博客园 - 司徒正美
L
LINUX DO - 热门话题
D
Docker
M
MIT News - Artificial intelligence
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
Jina AI
Jina AI
Last Week in AI
Last Week in AI
Security Latest
Security Latest
The Hacker News
The Hacker News
L
Lohrmann on Cybersecurity
Y
Y Combinator Blog
A
Arctic Wolf
小众软件
小众软件
T
Threat Research - Cisco Blogs
Know Your Adversary
Know Your Adversary
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
腾讯CDC
Google DeepMind News
Google DeepMind News
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 叶小钗
I
Intezer
NISL@THU
NISL@THU
A
About on SuperTechFans
爱范儿
爱范儿
C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
G
Google Developers Blog
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news

博客园 - 观无明

IE9 + django开发版WEB服务器 不响应或Socket报错 google chrome 下django用户登录失败的问题 django 开发多语言网站 不愁男女比例不协调 Word文件如源码一样也可比较和合并 python 的字符编码和中文处理 - 观无明 - 博客园 my django development environment (virtualenv+pip+django) nginx+fastcgi+django实践笔记 django 开发 - 小心模板文件的编码格式(utf-8) 汉王电子书D20使用笔记 使用south实现Django的数据库升级迁移 VIM 笔记 (for python ) 在Windows上使用Linux命令 cygwin 仍有人在真心关注这灾难 CruiseControl中应用NCover和NCoverExplore CruiseControl中使用NUnit中测试WEB服务 Resharper封装(Encapsulate)域Field为属性Property的命名问题 数据库开发的持续集成 - CruiseControl.Net的项目配置 数据库开发的持续集成 - Liquibase的简介和应用
djang 测试心得
观无明 · 2010-05-13 · via 博客园 - 观无明

突破test.py,弄个目录放测试案例

总所周知,django支持放在models.py中的doctest和tests.py,他们都要放在项目目录下。如果为了测试model, 使用doctest让测试挨着model的定义,而且也可方便得到文档,这可接受。但是tests.py放所有的测试案例严重不符合我的习惯,我喜欢把所有测试案例集中放在一个专门的目录中,而且一个文件一个TestCase。因此,考虑用suite()做一点工作,写一个tests.py:

" ""
Build test suite with test cases under the folder mytests

How to orgnize your tests cases:
    * put them in the folder mytests
    * name py file as *test.py, case-sensitivity ignored, eg. clientTest.py 
"""
__author__ = 'zhangtao.it@gmail.com'

import unittest,os,re

TESTS = 'mytests'

def suite():
    app_path = __name__.split('.')[:-1]
    app_path.append(TESTS)

    path = os.path.abspath(os.path.dirname(__file__))   
    path = os.path.join(path, TESTS)

    files = os.listdir(path)                               
    test = re.compile("test\.py$", re.IGNORECASE)          
    files = filter(test.search, files)   

    #note: for importing, module name must contain the full

这就是我的tests.py, 把他放到app目录中,然后:

  • app目录中建一个目录mytests, 用来放你的测试案例。记得搞一个空的__init__.py
  • 注意所有测试案例py文件命名为*test.py, 处理是忽略大小写。

如何准备测试数据

django测试是会生成专门一个测试数据库, 但里面没有数据,django自定义的TestCase提供了方法fixtures来加载测试数据到数据库。

  • 使用manage.py dumpdata 把正式数据库的数据导出来,保存在json文件中(如user.json),放在APP下fixtures目录里,如例

python manage.py  dumpdata auth.user --format json > yourappname/fixtures/user.json

  • 如此写测试案例,django会在setUp之后加载fixtures,把数据填充到数据库。当然,你也可自己编写json文件喂给它。
测试案例