Django自定义测试运行器

4 投票
1 回答
3155 浏览
提问于 2025-04-18 14:26

我尝试重写Django 1.6的自定义测试运行器,我想重写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选项的manage.py test命令运行测试时,我得到了:

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

如果不使用自定义测试运行器,它只会运行我写的3个测试。

我的自定义测试运行器有什么问题呢?我重写了一个简单的方法,但系统似乎运行了其他的测试集……

谢谢。

1 个回答

1

你还可以通过在 settings.py 文件中设置 TEST_RUNNER 变量,来告诉 Django 使用你自定义的测试运行器类。

比如说,你可以这样写:

TEST_RUNNER = 'mymodule.KeepDBTestRunner'

想了解更多,可以查看这个链接:https://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-TEST_RUNNER

撰写回答