Запускать тесты Django для существующей базы данных с помощью пользовательского testrunner - PullRequest
0 голосов
/ 23 мая 2018

У меня есть приложение под управлением Django 2, которое подключается к бэкэнду Microsoft SQL Server.

Мы находимся в большой среде, где все довольно жестко контролируется - учетная запись пользователя имеет доступ кбаза данных, в которой хранятся все таблицы для моего приложения django.

Таким образом, я обнаружил в различных постах, что мне нужно создать testrunner для моего приложения - и это нормально.Я могу переопределить функцию setup_databases, но я не уверен, точно , как это сделать.

Мой TestRunner(DiscoverRunner) выглядит так:

class ExistingDbTestRunner(DiscoverRunner):
    """ A test runner to test without database creation """

    def setup_databases(self, **kwargs):
        """ Override the database creation defined in parent class """
        # force Django to connect to the correct db for tests
        connection = self.connections['default']
        db_conf = connection.settings_dict
        connection.connect()

    def teardown_databases(self, old_config, **kwargs):
        """ Override the database teardown defined in parent class """
        pass

Но это не работает с AttributeError: 'ExistingDbTestRunner' object has no attribute 'connections'

Я просто пытаюсь заставить это использовать базу данных «по умолчанию», которую я установил в настройках для целей тестирования.

Стоит отметить -база данных по умолчанию, указанная в настройках, является дубликатом производственной базы данных с другим именем.

Поэтому я просто хочу, чтобы мои тесты запускались для этой дублированной базы данных.Что я должен изменить, чтобы он соединялся?

1 Ответ

0 голосов
/ 24 мая 2018

Тесты Django не работают с существующей базой данных или предназначены для такого использования.Django всегда создает новую базу данных с именем test_db_name_specified_in_settings для всех своих тестов.

Дополнительную документацию можно найти здесь: https://docs.djangoproject.com/en/2.0/topics/testing/overview/#the-test-database

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...