最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django使用unittest模塊進(jìn)行單元測(cè)試過程解析

 更新時(shí)間:2019年08月02日 08:53:28   作者:再見紫羅蘭  
這篇文章主要介紹了Django使用unittest模塊進(jìn)行單元測(cè)試過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Django測(cè)試框架非常簡(jiǎn)單,首選方法是使用python標(biāo)準(zhǔn)庫(kù)中的unittest模塊。

Writing tests

Django的單元測(cè)試使用python的unittest模塊,這個(gè)模塊使用基于類的方法來定義測(cè)試。類名為django.test.TestCase,繼承于python的unittest.TestCase。

from django.test import TestCase
from myapp.models import Animal
 
class AnimalTestCase(TestCase):
  def setUp(self):
    Animal.objects.create(name="lion", sound="roar")
    Animal.objects.create(name="cat", sound="meow")
 
  def test_animals_can_speak(self):
    """Animals that can speak are correctly identified"""
    lion = Animal.objects.get(name="lion")
    cat = Animal.objects.get(name="cat")
    self.assertEqual(lion.speak(), 'The lion says "roar"')
    self.assertEqual(cat.speak(), 'The cat says "meow"')

運(yùn)行測(cè)試的時(shí)候,測(cè)試程序會(huì)在所有以test開頭的文件中查找所有的test cases(inittest.TestCase的子類),自動(dòng)建立測(cè)試集然后運(yùn)行測(cè)試。

注意:如果測(cè)試是基于數(shù)據(jù)庫(kù)訪問的(讀取、查詢Model),一定要用django.test.TestCase建立測(cè)試類,而不要用unittest.TestCase。

Runing tests

執(zhí)行目錄下所有的測(cè)試(所有的test*.py文件):

$ python manage.py test

執(zhí)行animals項(xiàng)目下tests包里的測(cè)試:

$ python manage.py test animals.tests

執(zhí)行animals項(xiàng)目里的test測(cè)試:

$ python manage.py test animals

單獨(dú)執(zhí)行某個(gè)test case:

$ python manage.py test animals.tests.AnimalTestCase

單獨(dú)執(zhí)行某個(gè)測(cè)試方法:

$ python manage.py test animals.tests.AnimalTestCase.test_animals_can_speak

為測(cè)試文件提供路徑:

$ python manage.py test animals/

通配測(cè)試文件名:

$ python manage.py test --pattern="tests_*.py"

啟用warnings提醒:

$ python -Wall manage.py test

數(shù)據(jù)庫(kù)

測(cè)試是需要數(shù)據(jù)庫(kù)的,django會(huì)為測(cè)試單獨(dú)生成數(shù)據(jù)庫(kù)。不管你的測(cè)試是否通過,當(dāng)你所有的測(cè)試都執(zhí)行過后,這個(gè)測(cè)試數(shù)據(jù)庫(kù)就會(huì)被銷毀。

默認(rèn)情況下,測(cè)試數(shù)據(jù)庫(kù)的名字是test_DATABASE_NAME,DATABASE_NAME是你在settings.py里配置的數(shù)據(jù)庫(kù)名.如果 你需要給測(cè)試數(shù)據(jù)庫(kù)一個(gè)其他的名字,在settings.py中指定TEST_DATABASE_NAME的值。使用sqlite3時(shí),數(shù)據(jù)庫(kù)是在內(nèi)存中創(chuàng)建的。

除了數(shù)據(jù)庫(kù)是單獨(dú)創(chuàng)建的以外,測(cè)試工具會(huì)使用相同的數(shù)據(jù)庫(kù)配置--DATABASE_ENGINE, DATABASE_USER, DATABASE_HOST等等.創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)的用戶DATABASE_USER(settings中)指定,所以你需要確認(rèn) DATABASE_USER有足夠的權(quán)限去創(chuàng)建數(shù)據(jù)庫(kù)。

測(cè)試執(zhí)行順序

為了保證所有的測(cè)試都從干凈的數(shù)據(jù)庫(kù)開始,執(zhí)行順序如下:

1.所有的TestCase子類首先運(yùn)行。

2.所有其他的單元測(cè)試(unittest.TestCase,SimpleTestCase,TransactionTestCase)。

3.其它的測(cè)試(例如doctests等)

加速測(cè)試

可以將PASSWORD_HASHERS設(shè)置為更快的算法:

PASSWORD_HASHERS = (
  'django.contrib.auth.hashers.MD5PasswordHasher',
)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

吉林市| 库尔勒市| 崇礼县| 邳州市| 兴业县| 玛多县| 正镶白旗| 濮阳市| 奎屯市| 逊克县| 旌德县| 清丰县| 青岛市| 上思县| 咸宁市| 金川县| 雷山县| 西林县| 齐河县| 尤溪县| 镇赉县| 运城市| 高陵县| 玛多县| 南召县| 柏乡县| 会东县| 驻马店市| 益阳市| 梁山县| 突泉县| 新乐市| 福泉市| 乌兰察布市| 老河口市| 芮城县| 保康县| 白银市| 东莞市| 浮山县| 广昌县|