直接用nose进行django项目测试并输出html报告
先说需求: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报告的更多相关文章
- Linux Django项目测试
步骤 django项目: 依赖包 [root@web01 ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readli ...
- uwsgi+nginx部署django项目
1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2 ...
- 直接用postman测试api ,服务器端没提供跨域也可以访问。
1. 直接用postman测试api ,服务器端没提供跨域也可以访问. 但是,如果用本地的 sever 搭的server, 然后去访问api的话,浏览器会提示 跨域错误.
- ubuntu下配置Apache+mod_wsgi+Django项目(个人测试)
经过了一个星期的摸索,查找资料以及实验,我搭建的环境基本能用(还有就是Django后台的静态文件加载的问题) 这里面只是介绍一下我的过程,因为对应Apache还不是很熟练,特别是配置文件.只能供大家参 ...
- django第8天(在测试文件中运行django项目|单表操作)
django第8天 在测试文件中运行django项目 1.将项目配置文件数据库该为mysql,修改配置信息 PORT = '127.0.0.1' DATABASES = { 'default': { ...
- django 第一个项目测试
我们安装好Django以后就可以使用Django命令来创建项目了 1.Django 创建第一个项目 安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.py.我们可以 ...
- 统计 Django 项目的测试覆盖率
作者:HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 我们完成了对 blog 应用和 comment 应用这两个核心 app 的测试.现在 ...
- 打造专属测试平台4-使用Docker部署Django项目
编写完项目代码后,为了稳定的运行,需要将其部署至服务器.这里我选择了Docker去部署Django后端代码. 首先来看看Runoob对Docker的介绍: Docker 是一个开源的应用容器引擎,基于 ...
- 测试开发之Django——No5.Django项目的部署(CentOS7+nginx)
配置环境:CentOS7 1.安装python3环境 默认的CentOS7系统中,会安装python2.7的版本,由于Django2.0并不支持python2.7的版本,所以我们需要自己在系统中安装p ...
随机推荐
- iOS开发之判断系统版本
if([[UIDevice currentDevice].systemVersion doubleValue]>=7.0) { //是IOS7至以上版本 }else{ //IOS7以下版本 }
- unity传送门类似效果实现
简述 在传送门中,核心的玩法是在地上或者墙上打开2个可以联通的洞来实现传送的效果.以此扩展加入解谜要素构成游戏的核心. 这里尝试使用unity来实现传送门的核心功能,具体功能分析如下: 1.传送门的模 ...
- Eclipse中将含有图片资源的项目打包成jar文件
前言: 最近学了GUI编程和UDP协议,心血来潮想做一个局域网内的聊天软件,前期都还算顺利,直到后来将整个项目打包成jar文件时遇到了困难.如图: 自己设置的图标不见了,但是也没有默认的图标,说明图片 ...
- 大数据时代日志分析平台ELK的搭建
A,首先说说ELK是啥, ELK是ElasticSearch . Logstash 和 Kiabana 三个开源工具组成.Logstash是数据源,ElasticSearch是分析数据的,Kiaba ...
- C#调用webbrowser,阻止弹出新IE窗口
本人是用WPF内嵌 winform的webbrowser这种形式开发, 弹出的 //屏蔽弹出新IE窗口 private void webBrowser_NewWindow(object sender, ...
- 一步操作配置Word环境
我们在开始编辑Word文档的时候,会发现有些事情我们总需要预先操作一下,比如100%普通视图.显示隐藏特殊标记.显示标尺.最大化窗口.显示导航窗格啥的,每次去操作,感觉很烦,那么通过下面这个宏代码可以 ...
- poptest老李谈Socket
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-845052 ...
- Spring Boot 学习笔记--整合Redis
1.新建Spring Boot项目 添加spring-boot-starter-data-redis依赖 <dependency> <groupId>org.springfra ...
- sql server 数值的四舍五入
sql中的四舍五入通常会有round 和cast( …… as decimal())两种方式: 个人建议使用cast 方式: 方式1: 经过试验,同样都可以做到四舍五入,但round如下实例1会报 ...
- file_get_contents HTTP request failed! Internal Server Error
使用file_get_contents报错 Severity: WarningMessage: file_get_contents(http://geetest.com:8000/select?gid ...