您好,登錄后才能下訂單哦!
按理說(shuō)unittest 中是不應(yīng)該測(cè)試那種外部依賴很強(qiáng)的用例,但是呢,有時(shí)候有些接口總是調(diào)試好之后怕忘了,就寫(xiě)了一些簡(jiǎn)單的測(cè)試case,想要通過(guò)在settings中增加一些配置來(lái)開(kāi)啟和關(guān)閉這些case,這樣的話就可以在正常跑單元測(cè)試的時(shí)候隔離開(kāi)這些不怎么正規(guī)的測(cè)試用例。
環(huán)境
* Django1.8
* Python2.7.x
unittest 中提供了這么一個(gè)裝飾器,用起來(lái)也很簡(jiǎn)單。這里是一個(gè)百度地圖的地理編碼API,只想在某些時(shí)候跑這個(gè)case。
在settings中 test 配置部分增加一個(gè)配置項(xiàng)
# 必須連接外網(wǎng)的測(cè)試, 偶爾使用, false是不跳過(guò),也就是進(jìn)行測(cè)試 SKIP_MAP_API = False
tests中類似這種設(shè)置
# 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}] # 就這個(gè)裝飾器 @unittest.skipIf(settings.SKIP_MAP_API, u'需要外網(wǎng)連接') def test_fetch_geocode(self): print '------ map testing -------' b = BaiduAPI() res = b.getcodeer(self.locs) self.assertEqual(len(res), 2)
很簡(jiǎn)單的東西,知道就好,這樣的話可以進(jìn)行一些用例分組配置等。
以上這篇Django unittest 設(shè)置跳過(guò)某些case的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。