您可以子类化 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'
更新:2018 年 4 月
从 Django 1.8 开始,该模块django.test.simple.DjangoTestSuiteRunner
被感动了 https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner to 'django.test.runner.DiscoverRunner'
.
欲了解更多信息,请检查官方文档 https://docs.djangoproject.com/en/dev/topics/testing/advanced/#defining-a-test-runner关于自定义测试运行程序的部分。