Бегущий по тестам Django игнорирует опцию --settings - PullRequest
1 голос
/ 23 сентября 2011

Я пытаюсь использовать другой набор конфигов для тестирования моего приложения django (например, использовать sqlite3 в памяти вместо mysql) и для этой цели я пытаюсь использовать другой модуль настроек.Я запускаю свои тесты следующим образом:

python manage.py test --settings=test_settings

Но Django, похоже, игнорирует мой модуль test_settings.Я что-то не так делаю?

Ответы [ 2 ]

1 голос
/ 18 декабря 2013

Я только что наткнулся на это и подтвердил, что в Django 1.6.1 опция --settings игнорируется.Я подал заявку на трекер ошибок Django: https://code.djangoproject.com/ticket/21635#ticket

1 голос
/ 23 сентября 2011

Является ли test_settings файлом или каталогом?

Вот как я загружаю различные настройки для тестов. В settings.py, внизу:

# if manage.py test was called, use test settings
if 'test' in sys.argv:
    try:
        from test_settings import *
    except ImportError:
        pass

Супер бонус! Если вы хотите использовать sqlite3 для тестов, вы должны активировать ограничения целостности, чтобы вы получали те же исключения внешнего ключа, что и с mysql (с этим потрачено много времени). В каком-то файле вашего проекта:

from django.db.backends.signals import connection_created
def activate_foreign_keys(sender, connection, **kwargs):
    """Enable integrity constraint with sqlite."""
    if connection.vendor == 'sqlite':
        cursor = connection.cursor()
        cursor.execute('PRAGMA foreign_keys = ON;')

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