你可以继承DjangoTestSuiteRunner的子类,并覆盖setup_databases和teardown_databases方法以进行传递。
创建一个新的设置文件,并将TEST_RUNNER设置为刚创建的新类。然后,在运行测试时,请使用–settings标志指定新的设置文件。
这是我所做的:
from django.test.simple import DjangoTestSuiteRunner
class NoDbTestRunner(DjangoTestSuiteRunner):
""" A test runner to test without database creation """
def setup_databases(self, **kwargs):
""" Override the database creation defined in parent class """
pass
def teardown_databases(self, old_config, **kwargs):
""" Override the database teardown defined in parent class """
pass
创建自定义设置:
from mysite.settings import *
# Test runner with no database creation
TEST_RUNNER = 'mysite.scripts.testrunner.NoDbTestRunner'
在运行测试时,将–settings标志设置为新的设置文件,如下所示运行它:
python manage.py test myapp --settings='no_db_settings'
由于Django的1.8,该模块被移动到。django.test.simple.DjangoTestSuiteRunner 'django.test.runner.DiscoverRunner'