溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Django unittest 設(shè)置跳過(guò)某些case的方法

發(fā)布時(shí)間:2020-10-25 08:37:34 來(lái)源:腳本之家 閱讀:208 作者:orangleliu 欄目:開(kāi)發(fā)技術(shù)

按理說(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è)參考,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI