2

我正在尝试使用 django-discover-runner 来测试我的应用程序。它基本上是一个 WebService 前端,所以它不包含数据库,而且,显然 django-discover-runner 不喜欢这样。

查看其他问题,我已经看到使用普通的 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.

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

4

1 回答 1

3

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

要解决测试类中的问题,继承 SimpleTestCase 而不是 TestCase:

from django.test import SimpleTestCase

class TestViews(SimpleTestCase):
    ...

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

于 2014-08-25T02:45:44.170 回答