与Jenkins的pytest集成

与Jenkins的pytest集成,jenkins,pytest,Jenkins,Pytest,我能够在我的服务器中运行我的pytest测试/usr/local/bin/pytest--junitxml/proj/Results/result.xml/proj/unittests/ 但当使用Jenkins构建选项“ExecuteShell”运行时。我得到以下错误: Traceback (most recent call last): File "/usr/local/bin/pytest", line 6, in <module> import pytest Im

我能够在我的服务器中运行我的
pytest
测试
/usr/local/bin/pytest--junitxml/proj/Results/result.xml/proj/unittests/

但当使用Jenkins构建选项“ExecuteShell”运行时。我得到以下错误:

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
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/pytest”,第6行,在
导入pytest
ImportError:没有名为pytest生成步骤“Execute shell”的模块
已将生成标记为失败完成

您需要先安装模块:

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
....

我做了一些类似于@afxentios建议的事情。因为我在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

这取决于你是如何推出詹金斯的。如果您使用的是msi windows文件而不是jenkins war文件,则由于用户配置文件设置的原因,可能会出现此错误

为了解决此问题,您需要打开所有服务并右键单击Jenkins服务的属性,转到“登录”选项卡并选择“使用此帐户登录”。在浏览器文本框中输入您的服务器域名/用户名,然后单击浏览。您将能够看到您的完整用户名,选择它,输入您的系统密码。点击ok


完成此操作后,重新启动jenkins服务。你们已经解决了这个问题

真的需要吗。pytest在命令行中工作。只有jenkins的模块不起作用。该模块已经安装,并且没有从命令行运行pytest的问题。pytest在命令行中工作。詹金斯说,这不起作用。甚至我也运行了pip安装-U-pytest。在那之后,我也看到了同样的错误。在这种情况下,我会建议您创建一个
virtualenv
,然后从那里运行您的脚本,并检查这是否解决了您的问题。我已经编辑了我的答案。[workspace]$/bin/bash/tmp/hudson3694367207590422445.sh Traceback(最近一次调用):文件“/usr/local/bin/virtualenv”,第7行,在from virtualenv import main importorror:没有名为virtualenvIt的模块看起来这两个importorror问题都是由于混合版本或python和/或pip造成的。您的机器中是否有多个版本?如果是,您可能会发现以下讨论很有帮助:和。