国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Django單元測試(一)

2019-11-14 17:40:05
字體:
供稿:網(wǎng)友

Django測試框架非常簡單,首選方法是使用python標準庫中的unittest模塊。

Writing tests

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

from django.test import TestCasefrom myapp.models import Animalclass 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的子類),自動建立測試集然后運行測試。

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

Runing tests

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

$ python manage.py test

執(zhí)行animals項目下tests包里的測試:

$ python manage.py test animals.tests

執(zhí)行animals項目里的test測試:

$ python manage.py test animals

單獨執(zhí)行某個test case:

$ python manage.py test animals.tests.AnimalTestCase

單獨執(zhí)行某個測試方法:

$ 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

數(shù)據(jù)庫

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

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

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

測試執(zhí)行順序

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

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

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

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

加速測試

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

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

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 江山市| 十堰市| 土默特左旗| 荃湾区| 北京市| 灵寿县| 五大连池市| 吴忠市| 汶上县| 手机| 浪卡子县| 大石桥市| 苍梧县| 云南省| 屯留县| 福泉市| 井研县| 旌德县| 东阳市| 兰坪| 台中市| 嘉义市| 平阳县| 文山县| 曲周县| 封开县| 外汇| 株洲县| 新乡市| 社旗县| 桦南县| 雷波县| 汝阳县| 东乡县| 肇庆市| 左权县| 响水县| 满洲里市| 那坡县| 渭源县| 武清区|