Я все еще использую 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, второй слегка более эффективен.
Вот диаграмма показывающая отношения:

Итак 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), какой из них лучше?