亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Django中使用unittest模塊實現單元測試

發布時間:2021-03-17 17:24:38 來源:億速云 閱讀:371 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在Django中使用unittest模塊實現單元測試,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Django的單元測試使用python的unittest模塊,這個模塊使用基于類的方法來定義測試。類名為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"')

運行測試的時候,測試程序會在所有以test開頭的文件中查找所有的test cases(inittest.TestCase的子類),自動建立測試集然后運行測試。

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

Runing tests

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

$ python manage.py test

執行animals項目下tests包里的測試:

$ python manage.py test animals.tests

執行animals項目里的test測試:

$ python manage.py test animals

單獨執行某個test case:

$ python manage.py test animals.tests.AnimalTestCase

單獨執行某個測試方法:

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

為測試文件提供路徑:

$ python manage.py test animals/

通配測試文件名:

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

啟用warnings提醒:

$ python -Wall manage.py test

數據庫

測試是需要數據庫的,django會為測試單獨生成數據庫。不管你的測試是否通過,當你所有的測試都執行過后,這個測試數據庫就會被銷毀。

默認情況下,測試數據庫的名字是test_DATABASE_NAME,DATABASE_NAME是你在settings.py里配置的數據庫名.如果 你需要給測試數據庫一個其他的名字,在settings.py中指定TEST_DATABASE_NAME的值。使用sqlite3時,數據庫是在內存中創建的。

除了數據庫是單獨創建的以外,測試工具會使用相同的數據庫配置--DATABASE_ENGINE, DATABASE_USER, DATABASE_HOST等等.創建測試數據庫的用戶DATABASE_USER(settings中)指定,所以你需要確認 DATABASE_USER有足夠的權限去創建數據庫。

測試執行順序

為了保證所有的測試都從干凈的數據庫開始,執行順序如下:

1.所有的TestCase子類首先運行。

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

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

加速測試

可以將PASSWORD_HASHERS設置為更快的算法:

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

關于如何在Django中使用unittest模塊實現單元測試就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌拉特前旗| 从江县| 房山区| 新化县| 阳山县| 通海县| 延川县| 淮滨县| 始兴县| 曲靖市| 嘉禾县| 班戈县| 太和县| 南宫市| 博客| 大关县| 灵寿县| 土默特右旗| 乳源| 桐乡市| 安陆市| 文昌市| 信宜市| 岚皋县| 施甸县| 广昌县| 静安区| 张家口市| 西青区| 泾川县| 青州市| 宁化县| 黎城县| 鹤山市| 阿尔山市| 桃园县| 谷城县| 克什克腾旗| 陕西省| 嘉善县| 永新县|