Django unittest 设置跳过某些case的方法

按理说unittest 中是不应该测试那种外部依赖很强的用例,但是呢,有时候有些接口总是调试好之后怕忘了,就写了一些简单的测试case,想要通过在settings中增加一些配置来开启和关闭这些case,这样的话就可以在正常跑单元测试的时候隔离开这些不怎么正规的测试用例。

环境

* Django1.8

* Python2.7.x

unittest 中提供了这么一个装饰器,用起来也很简单。这里是一个百度地图的地理编码API,只想在某些时候跑这个case。

在settings中 test 配置部分增加一个配置项

# 必须连接外网的测试, 偶尔使用, false是不跳过,也就是进行测试
SKIP_MAP_API = False

tests中类似这种设置

# coding:utf-8
import unittest

from django.conf import settings
from django.test import TestCase

from map.util import BaiduAPI

class BaiduMapTestCase(TestCase):

 def setUp(self):
  self.locs = [{'lon': 39.914888, 'lat': 116.403874}, {'lon': 38.914888, 'lat': 117.403874}]

 # 就这个装饰器
 @unittest.skipIf(settings.SKIP_MAP_API, u'需要外网连接')
 def test_fetch_geocode(self):
  print '------ map testing -------'
  b = BaiduAPI()
  res = b.getcodeer(self.locs)
  self.assertEqual(len(res), 2)

很简单的东西,知道就好,这样的话可以进行一些用例分组配置等。

以上这篇Django unittest 设置跳过某些case的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python单元测试框架unittest使用方法讲解

    概述 1.测试脚手架(test fixture) 测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown(). 2.测试案例(test case) 最小的测试单元. 3.测试套件(test suite) 测试案例的集合. 4.测试运行器(test runner) 测试执行的组件. 命令行接口 可以用命令行运行测试模块,测试类以及测试方法. 复制代码 代码如下: python -m unittest test_module1 test_module2 python -m

  • python单元测试unittest实例详解

    本文实例讲述了python单元测试unittest用法.分享给大家供大家参考.具体分析如下: 单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而单元测试可以帮助我们很快准确的定位到问题的位置,出现问题的模块和单元.所以这是一件很愉快的事情,因为我们知道其它修改或没有修改的地方仍然是正常工作的,而我们目前的唯一问题就是搞定眼前这个有点问题的"家伙&qu

  • Python 单元测试(unittest)的使用小结

    测试目录 项目的整体结构可以参考"软件目录开发规范",这里单说测试目录.一般都是在项目里单独创建一个测试目录,目录名就是"tests". 关于目录的位置,一种建议是,在项目名(假设项目名是Foo)的一级子目录下创建二级子目录 "Foo/foo/tests" .但是这样可能是因为用起来不方便,有很多是按下面的做法.不过下面的示例我还是用这个方法来创建测试目录. 还可以把测试目录向上移一层,作为一级子目录,直接创建在项目之下 "Foo/te

  • Python中unittest用法实例

    本文实例讲述了Python中unittest的用法,分享给大家供大家参考.具体用法分析如下: 1. unittest module包含了编写运行unittest的功能,自定义的test class都要集成unitest.TestCase类,test method要以test开头,运行顺序根据test method的名字排序,特殊方法: ① setup():每个测试函数运行前运行 ② teardown():每个测试函数运行完后执行 ③ setUpClass():必须使用@classmethod 装

  • Python Unittest根据不同测试环境跳过用例的方法

    前言 在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,python的unittest框架就内置这样的功能. 本文章会讲述以下几个内容: 1.Unittest 如何跳过用例 2.如何使用sys.argv 3.自动化测试项目中如何一套代码多套环境运行 一.Unittest跳过用例 @unittest.skip(reason) , 直接跳过被装饰的用例 ,reason用于填写跳过用例的原因 @unittest.skipIf(condition, rea

  • Django unittest 设置跳过某些case的方法

    按理说unittest 中是不应该测试那种外部依赖很强的用例,但是呢,有时候有些接口总是调试好之后怕忘了,就写了一些简单的测试case,想要通过在settings中增加一些配置来开启和关闭这些case,这样的话就可以在正常跑单元测试的时候隔离开这些不怎么正规的测试用例. 环境 * Django1.8 * Python2.7.x unittest 中提供了这么一个装饰器,用起来也很简单.这里是一个百度地图的地理编码API,只想在某些时候跑这个case. 在settings中 test 配置部分增加

  • Django Admin设置应用程序及模型顺序方法详解

    Django默认情况下,按字母顺序对模型进行排序.因此,Event应用模型的顺序为Epic.EventHero.EventVillain.Event 假设你希望顺序是 EventHero.EventVillain.Epic.Event. 用于呈现后台indxe页面的模板为admin/index.html,对应的视图函数为 ModelAdmin.index. def index(self, request, extra_context=None): """ Display th

  • Django框架之登录后自定义跳转页面的实现方法

    Django auth 登陆后页面跳转至/account/profile,修改跳转至其他页面 这几天在学习django,django功能很强大,自带的auth,基本可以满足用户注册登陆登出,简单的用户注册登陆系统使用django auth足矣.当然也不是拿来就能用的,需要自己写登陆页面的模板,也很简单.自己尝试了一下,发现一个问题,当验证登陆成功后,页面会自动跳转到/account/profile,我并不想把页面跳转到这个页面,如何修改呢? 查了一堆网页,还是官网靠谱,很简单,就在project

  • AngularJS实现单一页面内设置跳转路由的方法

    本文实例讲述了AngularJS实现单一页面内设置跳转路由的方法.分享给大家供大家参考,具体如下: 单一页面内设置跳转路由 鉴于现在很多应用的应用功能以及场景都非常简单,如果还按照以前的思路,每个页面做一个html,通过路由进行跳转,不仅在时间上会有延迟,在某些特殊的浏览器(最典型的如微信内置浏览器)中,跳转过程中会出现短暂的白页. 因此,我们在开发过程中,将页面逻辑封装到同一个html中.当系统第一次加载页面时,将所有页面全部加载进去,然后通过angularJS内置的路由进行加载. 直接上代码

  • Django框架设置cookies与获取cookies操作详解

    本文实例讲述了Django框架设置cookies与获取cookies操作.分享给大家供大家参考,具体如下: 在Django里面,使用Cookie和Session看起来好像是一样的,使用的方式都是request.COOKIES[XXX]和request.session[XXX],其中XXX是您想要取得的东西的key, 很久以前,写过一篇 django怎么处理session 的文章:django 自定义session 处理, 今天对cookies 进行了同样的操作: from django.temp

  • django 控制页面跳转的例子

    如下所示: def delEquipment(request, delip): print delip ip=delip conn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='1234567', db ='DEVOPS' ) cursor = conn.cursor() #a = cur.execute("select ip,info,env from machine_info where env=%

  • Thinkphp页面跳转设置跳转等待时间的操作

    在 thinkphp 3.2.3 中,在目录 ThinkPHP\Library\Think 找到 Controller.class.php 这个文件,在代码里面找到 dispatchJump 这个方法,找到 $this->assign('waitSecond','3');这行, 将里面的 3 改掉即可. if($status) { //发送成功信息 $this->assign('message',$message);// 提示信息 // 成功操作后默认停留1秒 if(!isset($this-

  • 解决Django部署设置Debug=False时xadmin后台管理系统样式丢失

    对于使用Django框架开发的系统,当部署时设置settings.py文件中Debug=False时xadmin后台管理系统样式会丢失. [问题原因]: django的生产环境不同开发环境,在生产环境下(DEBUG=False),django.contrib.staticfiles 是不起任何作用的,也就说 django.contrib.staticfiles 只对开发环境(DEBUG=True)开启.所以会导致xadmin样式丢失现象. [解决方案]: ①在settings.py中添加如下配置

  • Django权限设置及验证方式

    当创建一个Models, 在同步到数据库里,django默认设置了三个权限 ,就是 add, change, delete权限.但是往往有时候,根本不够用,此时我们可以自己写一个脚本,来进行权限的设置. 根据DJango官方文档解释,权限都是与models有关系的,此时.如果想设置一个view,对于有权限的用户进行放行,对于无权限的用户进行限制.那么我们就可以着手来写这个需求. 验证权限的方法一般有两种,一种是用@permission_required来进行验证,第二中是用user.has_pe

随机推荐