2016-12-22 8 views
0

Я могу запустить мой pytest на своем сервере /usr/local/bin/pytest --junitxml /proj/Results/result.xml /proj/unittests/.pytest integartion с jenkins

Но при запуске с вариантом сборки jenkins «Execute Shell». Я получаю ошибку ниже

Traceback (most recent call last): 

File "/usr/local/bin/pytest", line 6, in <module>  
import pytest 

ImportError: No module named pytest Build step 'Execute shell' 
marked build as failure Finished 

ответ

1

Вам необходимо установить модуль первой:

pip install -U pytest 

EDIT: Вы можете попытаться создать virtualenv и выполнить скрипт внутри в изоляции.

#!/bin/bash 

export WORKSPACE=`pwd` 

# Create/Activate virtualenv 
virtualenv testenv -p /path/to/python/bin 
source testenv/bin/activate 

pip install -U pytest 

# try to run your script here 
.... 
+0

Действительно ли это необходимо. pytest работает в командной строке. только от дженкинсов он не работает. – VST

+0

Этот модуль уже установлен и нет проблемы с запуском pytest из командной строки. pytest работает в командной строке. От дженкинсов это не работает. даже я запустил pip install -U pytest. после этого также я вижу ту же ошибку. – VST

+0

В этом случае я предложил бы вам создать «virtualenv» и запустить ваш скрипт оттуда и проверить, разрешили ли вы эту проблему. Я отредактировал свой ответ. – afxentios

0

Я сделал что-то похожее на то, что предложил @afxentios. Поскольку у меня не было привилегий root на подчиненной машине jenkins, я создал virtualenv следующим образом:

PYENV_HOME=$WORKSPACE/.pyenv/ 
virtualenv --no-site-packages $PYENV_HOME 
source $PYENV_HOME/bin/activate 
pip install -U pytest 
pip install -r requirements.txt 
py.test test_abc.py 
deactivate 

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

  • Нет связанных вопросов^_^