2013-08-19 2 views
2

Я пытаюсь использовать django-Discover-runner для тестирования своего приложения. В основном это интерфейс WebService, поэтому он не включает базу данных, и, по-видимому, django-Discover-runner не нравится.Использование django-find-runner без базы данных

Глядя в other questions, я видел, что с простым Django я должен унаследовать от DjangoTestSuiteRunner и установить settings.TEST_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-find-runner, работающий без базы данных?

ответ

3

В Django 1.6 стандартная Django TestCase наследует от TransactionTestCase, которая пытается получить доступ к базе данных.

Чтобы устранить эту проблему в тесте класса унаследованы от SimpleTestCase, а затем TestCase:

from django.test import SimpleTestCase 

class TestViews(SimpleTestCase): 
    ... 

Теперь вы должны иметь возможность запускать тесты с установкой из копии базы данных.

Смежные вопросы