diferença entre django.test.TestCase vs unittest vs django.utils.unittest.TestCase

Eu ainda estou usando o Django 1.2.1, e eu acho que com o Django mais novo nós nãoimport unittest e depois fazerunittest.TestCase.

Ilustração

<code>import unittest
class TestThis(unittest.TestCase):

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

from django.test import TestCase
class TestThis(TestCase):
</code>

De acordo comConversa PyCon2011, o segundo élevemente mais eficiente.

Aqui está odiagrama mostrando as relações:

assimdjango.utils.unittest edjango.test herdar de qualquerunittest ouunittest2.

Não tenho certeza se o seguinte está correto ou não. Por favor ajude a edição.

<code> ________________________________________________________________
|  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      |
-----------------------------------------------------------------
</code>

Em termos de eficiência, qual dos três é melhor? Muitos desenvolvedores do Django zombam quando testam, então, às vezes, o banco de dados não é necessário. Existe uma maneira de não criar tabelas quando corremosmanage.py test myapp.MyClass ? Para versões mais antigas (anteriores a 1.3), qual é a melhor?

questionAnswers(1)

yourAnswerToTheQuestion