Django unittest 设置跳过某些case

标签: djangopython单元测试unittest
75人阅读 评论(0) 收藏 举报
分类:

按理说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)

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1308354次
    • 积分:17201
    • 等级:
    • 排名:第588名
    • 原创:444篇
    • 转载:35篇
    • 译文:22篇
    • 评论:106条
    感谢支持
    一起玩
    统计