2014-02-02 4 views
0

Попытка запустить некоторый тест, и я столкнулся с этой ошибкой, используя Python 2.7.3 и Django 1.5.ImportError: не удалось импортировать тестовый модуль

python -m unittest discover 
E 
====================================================================== 
ERROR: mapvis.test_select_nodes_from_rectangle (unittest.loader.ModuleImportFailure) 
---------------------------------------------------------------------- 
ImportError: Failed to import test module: mapvis.test_select_nodes_from_rectangle 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/unittest/loader.py", line 252, in _find_tests 
    module = self._get_module_from_name(name) 
    File "/usr/lib/python2.7/unittest/loader.py", line 230, in _get_module_from_name 
    __import__(name) 
    File "/home/pierre/maps3/lmap/mapvis/test_select_nodes_from_rectangle.py", line 5, in <module> 
    from django.core.context_processors import csrf 
    File "/usr/local/lib/python2.7/dist-packages/django/core/context_processors.py", line 12, in <module> 
    from django.middleware.csrf import get_token 
    File "/usr/local/lib/python2.7/dist-packages/django/middleware/csrf.py", line 16, in <module> 
    from django.utils.cache import patch_vary_headers 
    File "/usr/local/lib/python2.7/dist-packages/django/utils/cache.py", line 26, in <module> 
    from django.core.cache import get_cache 
    File "/usr/local/lib/python2.7/dist-packages/django/core/cache/__init__.py", line 70, in <module> 
    if DEFAULT_CACHE_ALIAS not in settings.CACHES: 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 52, in __getattr__ 
    self._setup(name) 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 45, in _setup 
    % (desc, ENVIRONMENT_VARIABLE)) 
ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

test_select_nodes_from_rectangle.py

from django.core.context_processors import csrf 
.... 
.... 
import random 
import unittest 

.... 
.... 
.... 

if __name__ == '__main__': 
    unittest.main() 
+1

Спасибо за вопрос. Он решил еще одну проблему: я получил «ModuleImportFailure: вместо тестового примера (возможно, из-за https://bugs.python.org/issue19746) запуск' python -m unittest discovery' помог обнаружить ошибку (отступы .. .) –

ответ

1

Как указывается в сообщении об ошибке установить переменную окружения, чтобы Django знать, какой файл содержит параметры проекта:

DJANGO_SETTINGS_MODULE=settings.module python -m unittest discover 

или запуск тестов, как это:

./manage.py test 
+0

У меня есть файл настроек в той же папке, что и мой unittest, как я его настроил для использования? Пробовал использовать ваш пример, но не работал, получил следующую ошибку ImportError: не удалось импортировать настройки настроек.module '(Это на sys.path?): Нет модуля с именем module – Pierre

+0

, если ваш файл настроек называется 'settings.py', и ваше приложение называется' mapvis', затем попробуйте: 'DJANGO_SETTINGS_MODULE = mapvis.settings python -m unittest обнаружить'. Читайте о модуле настроек [здесь] (https://docs.djangoproject.com/en/dev/topics/settings/#envvar-DJANGO_SETTINGS_MODULE) – warvariuc

+0

Если у вас есть 'manage.py' в том же каталоге, попробуйте:' python manage .py test' – warvariuc

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