现在,如果我想从我的所有应用程序运行测试,我会去:
python manage.py test app1 app2 app3
如果我跑:
python manage.py test
运行INSTALLED_APPS
中所有应用的测试,包括django。是否有一个简单的命令来运行我创建的所有应用程序的测试?
答案 0 :(得分:24)
可悲的是,没有这样的命令。 Django没有办法告诉哪些应用程序是“你的”而不是别人的应用程序。
我建议写一个新的管理命令,称之为mytest。然后创建一个新设置MY_INSTALLED_APPS。 mytest命令将为MY_INSTALLED_APPS中的每个应用程序运行测试。你需要mytest命令来继承django.core.management.base.AppCommand。 django.core.management.call_command也会有所帮助。
此方法的唯一问题是您必须不断维护MY_INSTALLED_APPS设置以确保其正确。
答案 1 :(得分:2)
这在Django 1.6+中运行得更好:当你运行python manage.py test,
时,只运行你的测试(假设你有TEST_RUNNER的默认设置)
答案 2 :(得分:2)
您可以为您的某个应用创建一个管理/命令/ testmyapps.py,其中包含:
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)
答案 3 :(得分:0)
使用nose django测试跑步者,它会照顾这个。