2015-08-20 2 views
0

Пусть я мой веб-приложение работает со следующими настройкамиКак настройки Джанго привязаны к веб-приложению

LOG_DIR = "/var/log/main" 

Эта переменная определяет, где бревно должно идти.

А теперь я запускаю тесты и у меня есть test_settings как

from settings import * 
LOG_DIR = "/var/log/test" 

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

Для моей интеграции testiing мне нужно изменить переменные, если я боюсь, что если это будет влиять на основное приложение или не .like мое приложение зависит от

переменных Shell ENV. Я хотел это сделать для моих тестов. но я боюсь, что если это будет выполнять основное запущенное приложение.

Это не для PROD, но и для окружающей среды других приложений тестирования

+1

Когда вы запускаете свои тесты с помощью «manage.py test --settings settings.test», это совершенно отдельный процесс, чем при запуске приложения в качестве сервера. Что касается установки переменных env, они являются per-shell, поэтому вы можете настроить их для тестирования в одной оболочке, и это не повлияет на другие оболочки. Возможно, вам захочется создать некоторую форму тестового бегуна, который настраивает переменную окружения, а затем запускает тест manage.py в конфигурации тестирования. –

ответ

1

Запуск процесса Джанго не будет влиять на параметры другого процесса. Просто убедитесь, что явным образом передаю флаг --settings в ваш скрипт manage.py при запуске ваших тестов/dev-сервера/etc ..

например.

python manage.py test --settings project/settings/test.py 
python manage.py runserver --settings project/settings 

Я предпочитаю иметь набор скриптов, которые получают, источник, когда я запускаю мою тестовую среду (вы можете настроить, что с тестовым бегуном см docs).