先说需求:1、测试django项目;2、打印测试报告(html格式)
有以下几种测试方法:
1、django自带的测试模块。在app目录下的tests.py文件中写测试类,类似这样:

class MyTest(TestCase):
  def setUp(self):
    dosomething()

  def test_case1(self):
    self.assertEqual(1, 1)

  def test_case2(self):
    pass

然后直接在项目目录下运行python manager.py test。理想状态下,控制台会打印出assert失败的case。但是没有办法把结果输出成html格式(也可能有我不知道的黑科技,google不到)。

2、nose + django-nose + nose-htmloutput。python下比较著名的测试框架nose,加上插件nose-htmloutput,可以把测试报告以html格式输出,再用django的nose插件(django-nose)把nose集成到django中。使用姿势:
django项目的setting.py:

INSTALLED_APPS = [
  ...
  'django_nose'
  ]

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

  项目依赖:
  pip install nose
  pip install django-nose
  pip install nose-htmloutput
  测试命令:python manager.py test --with-html --html-file=/path/to/htmlfile。
  到此为止可以满足大部分需求,然而由于我项目的特殊性(详见http://www.cnblogs.com/beeler/p/6743171.html),这种测试方式出问题了。首先说特殊性,简单来说,就是我的项目中会出现多线程访问数据库的场景,如果使用TestCase,主线程对数据库做的修改并不能从其他线程中访问到,为解决这个问题,必须使用 TransactionTestCase + 非内存数据库 的方法进行测试;其次说问题,在上述的设置下,使用django_nose.NoseTestSuiteRunner会出现错误,大意是文件数据库无法创建(目测是个nose的bug,但是错误比较底层,能力所限,没能解决)。为解决这个问题,看了一下django-nose的源码,发现了不止NoseTestSuiteRunner这一个runner,于是试了一下另外的runner:BaseRunner和BasicNoseRunner。BaseRunner可以运行但不能输出html报告,BasicNoseRunner和NoseTestSuiteRunner一样的错误。

3、直接用nose测试django项目。不用python manager.py test命令,而用nosetests加载tests.py进行测试。测试需要django环境,所以在tests.py开头加上:
  import os
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

  import django
  django.setup()

运行命令 nosetests --with-html --html-file=/path/to/htmlfile

直接用nose进行django项目测试并输出html报告的更多相关文章

  1. Linux Django项目测试

    步骤 django项目: 依赖包 [root@web01 ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readli ...

  2. uwsgi+nginx部署django项目

    1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2  ...

  3. 直接用postman测试api ,服务器端没提供跨域也可以访问。

    1. 直接用postman测试api ,服务器端没提供跨域也可以访问. 但是,如果用本地的 sever 搭的server, 然后去访问api的话,浏览器会提示 跨域错误.

  4. ubuntu下配置Apache+mod_wsgi+Django项目(个人测试)

    经过了一个星期的摸索,查找资料以及实验,我搭建的环境基本能用(还有就是Django后台的静态文件加载的问题) 这里面只是介绍一下我的过程,因为对应Apache还不是很熟练,特别是配置文件.只能供大家参 ...

  5. django第8天(在测试文件中运行django项目|单表操作)

    django第8天 在测试文件中运行django项目 1.将项目配置文件数据库该为mysql,修改配置信息 PORT = '127.0.0.1' DATABASES = { 'default': { ...

  6. django 第一个项目测试

    我们安装好Django以后就可以使用Django命令来创建项目了 1.Django 创建第一个项目 安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.py.我们可以 ...

  7. 统计 Django 项目的测试覆盖率

    作者:HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 我们完成了对 blog 应用和 comment 应用这两个核心 app 的测试.现在 ...

  8. 打造专属测试平台4-使用Docker部署Django项目

    编写完项目代码后,为了稳定的运行,需要将其部署至服务器.这里我选择了Docker去部署Django后端代码. 首先来看看Runoob对Docker的介绍: Docker 是一个开源的应用容器引擎,基于 ...

  9. 测试开发之Django——No5.Django项目的部署(CentOS7+nginx)

    配置环境:CentOS7 1.安装python3环境 默认的CentOS7系统中,会安装python2.7的版本,由于Django2.0并不支持python2.7的版本,所以我们需要自己在系统中安装p ...

随机推荐

  1. vue学习笔记 计算属性(四)

    计算属性就是vue实例里的computed属性,对应一个对象,里面可以放各种方法,方法的作用就是可以生成和数据变量对应的计算后的变量,跟数据相关的复杂逻辑变量,都可以使用计算属性实现,computed ...

  2. pyqt样式表语法笔记

    pyqt样式表语法笔记 pyqt QSS python 样式表 因为软件课设的原因开始学习使用pyqt4,才发现原来它也有样式表,而且语法跟css基本相同,而且一些功能实现起来感觉比js要简单方便得多 ...

  3. firefox无法使用yslow的解决方案

    首先,Yslow不支持firefox 36及以上版本. 解决方案:使用yslow的书签版本 使用方法:1.访问这里 http://yslow.org/mobile/ 2.把页面最后的那个 Deskto ...

  4. 译:Missing index DMV的 bug可能会使你失去理智---慎重看待缺失索引DMV中的信息

    注: 本文译自https://www.sqlskills.com/blogs/paul/missing-index-dmvs-bug-that-could-cost-your-sanity/ 原文作者 ...

  5. SSH整合(一)hibernate+spring

    1.导入maven节点  <dependencies> //测试用的 <dependency> <groupId>junit</groupId> < ...

  6. C#, VB.NET如何加密PDF文档

    在日常工作中,人们通常通过加密PDF文档的方式来保护PDF文档.不管是公司还是个人,使用PDF加密术来设置一些权限是必不可少的.为了使PDF文档既可读又不能被未授权的用户所更改,一份PDF文档往往需要 ...

  7. Bootstrap基础学习(一)—表格与按钮

    一.Bootstrap 概述      Bootstrap 是由 Twitter 公司(全球最大的微博)的两名技术工程师研发的一个基于HTML.CSS.JavaScript 的开源框架.该框架代码简洁 ...

  8. Spring BeanFactoryPostProcessor

    使用场景:当在配置文件中需要配置Bean(参数不同,class相同,id不同时)冗余的情况 继承 BeanFactoryPostProcessor 覆盖 postProcessBeanFactory( ...

  9. 一款好用的jquery评分插件

    一.使用说明 1.jQuery评分插件的功能: 图标显示用户评分,更美观 可实时点击,切换评分 返回用户评分,记录用户评分 实现类似下图效果 2.优点: 美观,方便 3.缺点: 只能用于jquery开 ...

  10. appium+python做移动端自动化测试

      1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供 ...