【问题标题】:Django custom testrunnerDjango 自定义测试运行器
【发布时间】:2014-07-23 13:37:41
【问题描述】:

我尝试覆盖 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 选项的 testrunner 运行 manage.py 测试时,我得到:

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

如果没有自定义测试运行程序,它只会运行我编写的 3 个测试。

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

谢谢。

【问题讨论】:

  • 执行test命令时是否指定应用名称?
  • 如果我指定应用程序名称,它会执行正确的测试集(3 个测试..),数据库会正确创建,但没有数据...

标签: python django unit-testing


【解决方案1】:

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

例如

TEST_RUNNER = 'mymodule.KeepDBTestRunner'

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 2015-02-01
    • 2011-08-15
    • 2011-05-28
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多