pelicula - ¿Cómo ejecuto pruebas solo para todas mis aplicaciones Django?
django wikipedia (4)
Ahora mismo, si quiero ejecutar pruebas desde todas mis aplicaciones, voy:
python manage.py test app1 app2 app3
Si corro:
python manage.py test
Se ejecuta la prueba de todas las aplicaciones en INSTALLED_APPS
, incluidas las de django. ¿Hay un comando simple para ejecutar las pruebas de todas las aplicaciones que he creado?
Esto funciona mejor en Django 1.6+: cuando ejecuta la python manage.py test,
solo se ejecutarán sus pruebas (asumiendo que tiene la configuración predeterminada para TEST_RUNNER)
Lamentablemente no hay tal orden. Django no tiene manera de decir qué aplicaciones son "tuyas" y cuáles son las de otra persona.
Lo que sugeriría es escribir un nuevo comando de administración, llámelo mytest. Luego crea una nueva configuración MY_INSTALLED_APPS. El comando mytest solo ejecutará la prueba para cada aplicación en MY_INSTALLED_APPS. Querrás que el comando mytest subclase django.core.management.base.AppCommand. django.core.management.call_command también será útil.
El único problema con este método es que deberá mantener constantemente la configuración MY_INSTALLED_APPS para asegurarse de que sea correcta.
Podría crear una administración / comandos / testmyapps.py para una de su aplicación que tiene:
from django.core.management.base import BaseCommand, CommandError
import django.core.management.commands.test
from django.core import management
from django.conf import settings
class Command(django.core.management.commands.test.Command):
args = ''''
help = ''Test all of MY_INSTALLED_APPS''
def handle(self, *args, **options):
super(Command, self).handle(*(settings.MY_INSTALLED_APPS + args), **options)
Utilice la prueba de la nariz Django corredor, se encarga de esto.
Referencia: Nariz de Django para ejecutar solo pruebas de proyectos.