Почему Nosetests не может найти один элементы в Sysspath?

StackOverflow https://stackoverflow.com/questions/3947464

Вопрос

У меня есть серия тестов подразделения, с которыми я бегу с нос. Отказ Для некоторых моих тестов я хотел бы удалить путь модуля из sys.path Таким образом, нет конфликта с тем, что я проверяю.

sys.path.remove('/path/to/remove/from/sys/path')

Если я запускаю интерпретатор Python и позвоните sys.path, то '/path/to/remove/from/sys/path' там в списке. Однако, когда называются Nosetests, приведенный выше код не может найти его и дает мне ошибку «не найдено в списке».

Почему нос не в состоянии найти путь в sys.path?

Это было полезно?

Решение 2

Создайте сценарий, get_mod_py_path.py, чтобы установить PythonPath. В этом случае он бросает конфликтующий путь.

import os
import sys

# Remove the global Python modules from the PYTHONPATH.
path = os.environ['PYTHONPATH'].split(os.pathsep)
if os.environ['GLOB_PY_MODULES'] in path: 
    path.remove(os.environ['GLOB_PY_MODULES'])

# Construct the new path and print it. 
path = ':'.join(path)
print path

Затем используйте его в Bash, который называет недооценки.

PYTHONPATH=`python get_mod_py_path.py`   
nosetests --verbosity=1 --with-gae --where="../tests/unit" --gae-application="../app" 

Другие советы

Разве ты не имел в виду это?

sys.path.remove('/path/to/remove/from/sys/path')

Если нос не могу найти это в sys.path Тогда это не было ... нос делает много диета с sys.path самостоятельно. Почему бы не печатать sys.path и посмотрите, что это на самом деле, когда работает под нос

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top