2016-12-22 86 views
0

我能夠在我的服務器/usr/local/bin/pytest --junitxml /proj/Results/result.xml /proj/unittests/中運行我的pytest。pytest integartion與jenkins

但是,當與詹金斯運行構建選項「Execute殼」。我收到以下錯誤

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 

編輯: 你可以嘗試創建的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建議的操作。因爲我在jenkins slave機器上沒有root權限,所以我創建瞭如下的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