Почему Nosetests не может найти один элементы в Sysspath?
-
08-10-2019 - |
Вопрос
У меня есть серия тестов подразделения, с которыми я бегу с нос. Отказ Для некоторых моих тестов я хотел бы удалить путь модуля из 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
и посмотрите, что это на самом деле, когда работает под нос