La respuesta de Nigel es excelente y definitivamente la barrera más baja para la opción de entrada. Sin embargo, se puede mejorar aún más con la retroalimentación django_nose
(y no es que difícil de configuración;).
El siguiente es de: BDD con Python
Primero: instale algunos requisitos:
pip install nose pinocchio django_nose
Luego agregue lo siguiente a settings.py
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = ['--with-spec', '--spec-color']
Luego, ejecute sus pruebas como de costumbre:
python manage.py test
La salida debería verse así:
Nota: Los comentarios en sus pruebas se pueden usar para dar un resultado aún mejor que solo el nombre.
p.ej:
def test_something(self):
"""Something should happen"""
...
Emitirá "Algo debería suceder" al ejecutar la prueba.
Para obtener puntos adicionales: también puede generar / generar la cobertura de su código:
pip install coverage
Agregue lo siguiente a su NOSE_ARGS en settings.py: '--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'
p.ej:
NOSE_ARGS = ['--with-spec', '--spec-color',
'--with-coverage', '--cover-html',
'--cover-package=.', '--cover-html-dir=reports/cover']
Entonces obtendrá un buen resumen de la cobertura del código cuando lo ejecute python manage.py test
, así como un informe html ordenado enreports/cover
transaction.atomic()
para lograr el aislamiento de prueba ......... nTestCase podría ser necesario (por ejemplo, probar algún comportamiento transaccional)".pinocchio
complemento (puede instalarlo por pip). Vea donde dice: "primero instale algunos requisitos" arriba.