test run django django-testing

run - django test



Ejecutando pruebas de django con sqlite (4)

Agregue las siguientes líneas en su configuración:

import sys if ''test'' in sys.argv or ''test_coverage'' in sys.argv: #Covers regular testing and django-coverage DATABASES[''default''][''ENGINE''] = ''django.db.backends.sqlite3''

Asegúrese de que la configuración de la base de datos real esté antes que ellos

Uso Postgres para producción y desarrollo, pero me gustaría usar sqlite para realizar algunas pruebas. No veo una manera fácil de configurar un motor para pruebas y otro para desarrollo / producción. ¿Me estoy perdiendo de algo?


Esta no es una respuesta directa, pero sí, te falta un gran problema: probar una aplicación Postgres en SQLite es complicado, son muy diferentes. Le sugiero que prefiera crear un disco RAM (por ejemplo, utilizando tmpfs ) y crear su base de datos de prueba de Postgres allí. No será tan rápido como SQLite, pero posiblemente un orden de magnitud más rápido que la base de datos regular de Postgres almacenada en el disco duro.


Puedes probar una configuración similar a la que Zachary Voase sugiere aquí: http://blog.zacharyvoase.com/2010/02/03/django-project-conventions/

(La publicación completa es útil, pero desplácese hasta la sección "Configuración" para la parte más relevante aquí).

La estrategia de Zach es crear una carpeta de configuración y __init__.py como un paquete python usando un archivo __init__.py . Luego puede tener un submódulo separado para cada uno de sus tipos de implementación, estructurado de la siguiente manera:

settings/ |-- __init__.py # Empty; makes this a Python package |-- common.py # All the common settings are defined here |-- development.py # Settings for development |-- production.py # Settings for production |-- staging.py # Settings for staging

Siguiendo este concepto, puede configurar una implementación para postgres y una implementación separada para sqlite, y separar las configuraciones para cada una según sea necesario.


Yo sugeriría usar -k o --keepdb -Flag al ejecutar la manage.py test y la siguiente configuración:

DATABASES = { ''default'': { ''ENGINE'': ''django.db.backends.postgresql_psycopg2'', ''NAME'': ''DBNAME'', ''USER'': ''DBNAME'', ''PASSWORD'': ''DBNAME'', ''HOST'': ''localhost'', ''PORT'': '''', ''TEST'': { ''NAME'': ''DBNAME_test'', } }, }

En mi configuración con Django == 1.11 funciona como un encanto. Buena suerte para el tuyo!