Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用pipenv在jenkins上运行unittest花费的时间太长_Jenkins_Pip_Pipenv - Fatal编程技术网

使用pipenv在jenkins上运行unittest花费的时间太长

使用pipenv在jenkins上运行unittest花费的时间太长,jenkins,pip,pipenv,Jenkins,Pip,Pipenv,我们从pip迁移到pipenv 我认为pipenv很棒,但是遇到了一个问题 我们使用git webhook对jenkins的每次推送都运行单元测试。使用pip时,我们有一个虚拟环境,在运行测试之前,我们会激活它并安装requiremnets.txt文件 这是相当快的,pip将运行已经满足的需求网,并且只在添加依赖项时安装依赖项 有了Pipenv,我在repo的根目录中有了Pipfile和Pipfile.lock,运行Pipenv install似乎每次都在重新创建环境,而且需要很长时间 对我们来

我们从pip迁移到pipenv

我认为pipenv很棒,但是遇到了一个问题

我们使用git webhook对jenkins的每次推送都运行单元测试。使用pip时,我们有一个虚拟环境,在运行测试之前,我们会激活它并安装requiremnets.txt文件

这是相当快的,pip将运行已经满足的需求网,并且只在添加依赖项时安装依赖项

有了Pipenv,我在repo的根目录中有了Pipfile和Pipfile.lock,运行
Pipenv install
似乎每次都在重新创建环境,而且需要很长时间

对我们来说,这可能是一个阅读交易的破坏者

是否有任何变通方法可以加快与pipenv的合作

以前的shell脚本(在jenkins工作中)类似于:

eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv activate romee

pip install -r requirements.txt
pip install -r requirements-dev.txt

python tests.py
使用pipenv:

pipenv install
pipenv install --dev
pipenv run python run_tests.py

听起来您的旧安装程序保留了虚拟环境和以前的
pip
安装包,而您的新
pipenv
安装程序没有

默认情况下,
pipenv
在生成区域之外创建一个虚拟环境,并使用到生成区域的完整路径的散列作为名称的一部分。生成区域外的目录没有在各个生成之间保留,或者每次生成运行时生成区域目录路径都不同(每次都会导致新的虚拟环境)

我建议在运行
pipenv
之前进行设置。使用此设置,您的构建将更像旧的构建,在构建目录树中包含virtualenv。像这样:

export PIPENV_VENV_IN_PROJECT=1
pipenv install --dev
pipenv run python run_tests.py

(另外,无需运行
pipenv安装
pipenv安装--dev
将安装主软件包以及仅适用于开发人员的软件包。)

“pipenv安装似乎每次都在重新创建环境”-这很奇怪。您能运行
pipenv安装--verbose
并显示日志中的内容吗?输出非常大!有什么特别的吗?