В настоящее время я работаю над проектом, включающим тесты, которые будут выполняться на удаленном хосте (bash). К сожалению, удаленный интерпретатор python не уважает доступные пакеты сайтов (он встроенный: abaqus python (2.6)). Однако использование переменной PYTHONPATH позволяет указать локальные установки и сделать доступными дополнительные пакеты. Следовательно, на удаленной машине я просто добавляю соответствующую строку в мой .bashrc-файл.Настройка удаленной среды при использовании xdist
К сожалению, при распространении тестов с использованием xdist вызывается только «голый» bash без каких-либо специфических нагрузок профиля. Таким образом, тесты терпят неудачу с некоторыми ошибками импорта, поскольку argparse, который требуется pytest, недоступен.
Есть ли способ настроить удаленный хост, прежде чем он начнет выполнение любого кода pytest (что требует argparse)? Другими словами, есть ли способ добавить переменные среды на хосты до начала импорта pytest?
Я пробовал использовать приборы с возможностью сеанса и autouse=True
, которые (конечно) не работали. Кроме того, я пытался что-то вроде
# in conftest.py
import sys
def pytest_configure_node():
sys.path.insert(1, "/somepath/")
print sys.path
Это выглядит, как она выполняется на удаленном хосте, но sys.path остается хозяевам один и argparse модуль до сих пор не могут быть импортированы.
Я начала тестирования с использованием
py.test --tx [email protected]//python="abaqus613 python" -vs --dist=each --rsyncdir foo
Это начинается правильный интерпретатор Python (Python 2.6.2 для Abaqus 6.13-2), но терпит неудачу с
ImportError: No module named argparse
Какую команду вы используете для запуска 'xdist'? –
@ReutSharabani см. Мой обновленный вопрос. – Jakob
какую строку вы используете для установки PYTHONPATH в .bashrc при тестировании вручную? –