我正在尝试使用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工作吗?
答案 0 :(得分:3)
在Django 1.6中,标准的Django TestCase继承自TransactionTestCase,后者试图访问数据库。
要修复测试类中的问题,请继承SimpleTestCase而不是TestCase:
from django.test import SimpleTestCase
class TestViews(SimpleTestCase):
...
您现在应该可以在不设置数据库的情况下运行测试。