разница между django.test.TestCase и unittest и django.utils.unittest.TestCase

Я все еще использую Django 1.2.1, и я думаю, что с более новым Django мы не import unittest, а затем делаем unittest.TestCase.

Иллюстрация

import unittest
class TestThis(unittest.TestCase):

from django.utils.unittest import TestCase
class TestThis(TestCase):

from django.test import TestCase
class TestThis(TestCase):

Согласно PyCon2011 talk , второй немного более эффективен.

Вот диаграмма , показывающая отношения:

enter image description here

Итак, django.utils.unittestи django.testнаследуются либо от unittest, либо от unittest2.

Я не уверен, правильно ли следующее. Пожалуйста, помогите с редактированием.

 ________________________________________________________________
|  Name                   |  Django Version  |  Python Version  |
-----------------------------------------------------------------
|  unittest               |     >= 1.0       |      >= 2.6      |
-----------------------------------------------------------------
|  django.utils.unittest  |     >= 1.3       |       ??         |
-----------------------------------------------------------------
|  django.test            |     >= 1.0       |      >= 2.6      |
|   - SimpleTestCase            >= 1.4              >= 2.7      |
|   - LiveServerTestCase        >= 1.4              >= 2.7      |
-----------------------------------------------------------------

С точки зрения эффективности, какой из трех лучше? Многие разработчики Django издеваются, когда тестируют, поэтому иногда база данных даже не нужна. Есть ли способ не создавать таблицы при запуске manage.py test myapp.MyClass? Для более старой версии (до 1.3)какая лучше?

18
задан CppLearner 15 April 2012 в 18:39
поделиться