Django定制testrunner

时间:2014-07-23 13:37:41

标签: python django unit-testing

我试图覆盖DJango 1.6自定义testrunner,我想覆盖teardown_database和teardown_test方法以避免删除测试数据(我想查看数据库内部...):

#!/usr/bin/env python

from django.test.simple import DjangoTestSuiteRunner
from django.conf import settings

class KeepDBTestRunner(DjangoTestSuiteRunner):

    def teardown_databases(self, old_config, **kwargs):
        pass

    def teardown_test_environment(self, **kwargs):
        pass

但是当我使用带有--testrunner选项的testrunner运行manage.py测试时,我得到:

Creating test database for alias 'default'
...
Ran 230 tests in 1.364s

如果没有自定义testrunner,它只运行我写过的3个测试。

我的自定义testrunner出了什么问题,我覆盖了一个简单的方法,但似乎系统运行另一个测试集....

感谢。

1 个答案:

答案 0 :(得分:0)

另一种方法是通过在 TEST_RUNNER 中设置 settings.py 变量,将 Django 指向您的自定义测试运行器类

例如

TEST_RUNNER = 'mymodule.KeepDBTestRunner'

https://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-TEST_RUNNER