Интеграция с тестом Jenkins
Я могу управлять своим pytest
тесты на моем сервере /usr/local/bin/pytest --junitxml /proj/Results/result.xml /proj/unittests/
,
Но при запуске с Дженкинсом опция сборки "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
4 ответа
Я сделал что-то похожее на то, что предложил @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
Сначала вам нужно установить модуль:
pip install -U pytest
РЕДАКТИРОВАТЬ: Вы можете попытаться создать 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
....
Я думаю, вам нужно сначала активировать виртуальную среду. Если у вас уже есть виртуальная среда, вы можете сделать это:
CALL venv/Scripts/activate
pytest
Это сработало для меня.
Это зависит от того, как вы запустили Jenkins. Если вы используете файл msi для Windows вместо файла войны jenkins, вы, вероятно, получите эту ошибку из-за настройки профиля пользователя.
Чтобы решить эту проблему, вам нужно открыть все службы и щелкнуть правой кнопкой мыши на свойствах вашей службы Jenkins, перейти на вкладку "Вход в систему" и выбрать "Войти с этой учетной записью". Введите свое доменное имя / имя пользователя для сервера в текстовое поле браузера и нажмите "Обзор". вы сможете увидеть свое полное имя пользователя, выберите его, введите системный пароль. нажмите ОК.
После этого перезапустите службу jenkins. Вы решили проблему!