使用py.test对django项目测试

there is no secret to writing tests.. there are only secrets to writing testable code! – Misko Hevery

为什么不使用自带的test?

自带的django的test是继承了unittest,功能简单,出错是只显示调用栈,打印不怎么人性化,重要的是无法扩展.

py.test有什么好处?

py.test 则人性化的报告,配置,多个外部扩展(plugins) 比如: pytest-django pytest-cov pytest-benchmark pytest-pep8 这样从而使你更容易write better programs

如何使用py.test对django项目测试?

  1. 安装pytest-django pip install pytest-django 注意 没有安装,配置哪个也不会报错.

  2. 配置文件(pytest.ini) [pytest] DJANGO_SETTINGS_MODULE=yourproject.settings

  3. 运行py.test

发现一个问题 使用pyenv后,py.test总是运行系统的哪个,然不是pyenv环境的哪个,当你要求使用python3时则出错.

pytest 配置文件参考


[DEFAULT]
addopts = --maxfail=2 -rf  # exit after 2 failures, report fail info
    --pdb
    --cov=XXX
    --pep8
norecursedirs = .svn _build tmp*
minversion = 2.1 # 使用这个代表与人分享

[pytest]
addopts= --pdb
python_files= tests.py,test_*.py

加个插件,在配置文件中就是加个参数

一些技巧

  1. 查看有什么插件 py.test –traceconfig

  2. 禁止插件 py.test -p no:NAME NAME是插件名字

  3. 技用ini - DEFAULT会有妙用 一种随时切换的能力

参考

pytest官网 pytest-base-configure py-test-django-tutorial pytest

Loading Disqus comments...
Table of Contents