使用没有数据库的django-discover-runner

时间:2013-08-19 14:47:36

标签: django unit-testing

我正在尝试使用django-discover-runner来测试我的应用。它基本上是一个WebService前端,因此它不包含数据库,显然,django-discover-runner不喜欢它。

查看other questions,我已经看到使用普通的Django,我应该继承DjangoTestSuiteRunner并设置settings.TEST_RUNNER。它工作正常。但是django-discover-runner使用自己的discover_runner.DiscoverRunner类,所以我尝试了这个:

from discover_runner import DiscoverRunner

class DBLessTestRunner(DiscoverRunner):
    def setup_databases(self):
        pass

    def teardown_databases(self, *args):
        pass

但它不起作用。我收到此错误消息:

ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

知道如何在没有DataBase的情况下让django-discover-runner工作吗?

1 个答案:

答案 0 :(得分:3)

在Django 1.6中,标准的Django TestCase继承自TransactionTestCase,后者试图访问数据库。

要修复测试类中的问题,请继承SimpleTestCase而不是TestCase:

from django.test import SimpleTestCase

class TestViews(SimpleTestCase):
    ...

您现在应该可以在不设置数据库的情况下运行测试。