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?