python - tutorial - test form django
Cómo ver qué pruebas se ejecutaron durante el comando manage.py test de Django (2)
Una vez finalizada la manage.py test
comando manage.py test
Django, solo se imprime en la consola el número de pruebas aprobadas.
(virtualenv) G:/Project/>python manage.py test
Creating test database for alias ''default''...
True
..
----------------------------------------------------------------------
Ran 2 tests in 0.017s
OK
Destroying test database for alias ''default''...
¿Hay alguna manera de ver:
- cuales pruebas fueron ejecutadas
- de que modulo
- en qué orden
No he encontrado ninguna solución en el documento.
La respuesta de Nigel es excelente y, definitivamente, la barrera más baja para la opción de entrada. Sin embargo, puede obtener comentarios aún mejores con django_nose
(y no es tan difícil de configurar;).
El siguiente es de: BDD con Python
Primero: instalar algunos requisitos:
pip install nose pinocchio django_nose
Luego agrega lo siguiente a settings.py
TEST_RUNNER = ''django_nose.NoseTestSuiteRunner''
NOSE_ARGS = [''--with-spec'', ''--spec-color'']
A continuación, ejecute sus pruebas según lo normal:
python manage.py test
La salida debe verse algo como esto:
Nota: los comentarios bajo sus pruebas pueden usarse para dar un resultado aún mejor que solo el nombre.
p.ej:
def test_something(self):
"""Something should happen"""
...
Se emitirá "Algo debe suceder" al ejecutar la prueba.
Para puntos extra: También puede generar / generar su cobertura de 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''
cover ''--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'']
Luego obtendrá un buen resumen de cobertura de código cuando ejecute la python manage.py test
, así como un informe html limpio en reports/cover
Puede pasar -v 2
al comando de test
:
python manage.py test -v 2
Después de ejecutar este comando obtendrás algo como esto (estoy usando django 2, siéntete libre de ignorar las migraciones / cosas de la base de datos):
Creating test database for alias ''default'' (''file:memorydb_default?mode=memory&cache=shared'')...
Operations to perform:
Synchronize unmigrated apps: messages, staticfiles
Apply all migrations: admin, auth, contenttypes, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Running migrations:
Applying contenttypes.0001_initial... OK
...
Applying sessions.0001_initial... OK
System check identified no issues (0 silenced).
test_equal_hard (polls.tests.TestHard) ... ok <--------+
test_equal_simple (polls.tests.TestSimple) ... ok <--------+
|
|
That''s your tests! >----------------------------+
Por cierto, v
significa verbosidad (también puedes usar --verbosity=2
):
python manage.py test --verbosity=2
Aquí está el extracto de la python manage.py test --help
:
-v {0,1,2,3}, --verbosity {0,1,2,3}
Nivel de verbosidad; 0 = salida mínima, 1 = salida normal, 2 = salida detallada, 3 = salida muy detallada