我的Python项目是作为容器部署的,并且还有单元测试。对于Docker最佳实践,最终映像应该排除仅用于测试的任何依赖项(例如pytest )。如何在仍然运行测试时排除测试依赖项?
一个问题是,如果我独立于部署映像构建测试环境,那么这两个环境最终可能包含不同版本的子依赖项。(假设我的项目使用rasterio,而rasterio和pytest都使用attrs,那么安装pytest可以更改包管理器安装的attrs版本。这表明错误可能出现在部署映像中,而不会出现在测试环境中。)如果最终映像中包含了测试依赖项,那么CI可以通过docker-compose build、docker-compose up
当我在Travis-CI中运行一些预定义的Pipenv脚本时,我得到了以下消息,这让我想到了一个问题:我应该在Travis环境中运行Pipenv吗?它是否辜负了CI测试的目的?您可以将PIPENV_IGNORE_VIRTUALENVS=1设置为强制pipenv忽略该环境并创建它自己的环境。您可以设置PIPENV_VERBOSITY=-1来抑制此警告。当您使用Pipenv进行开发,并将Travis用于CI时,最佳实践是什么?我应该手动运行到pipenv run unit_
/pipenv/core.py", line 2052, in do_init( File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 1305, in do_install_dependencies( File "/usr/l
默认情况下,我只看到[packages]和[dev-packages],但是对于某些环境,我有额外的依赖项。所以我想安装packages,例如[tests],而不是[dev-packages]。例如:# or 在此之前,我使用了requirements.txt,requirements-dev.txt有什么好的方法用pipenv来实现
当我在Pipfile中为包设置一个特定版本并使用pipenvinstall时,就会安装特定的版本。但是,当我使用pipenvinstall --dev和其中一个dev包时,需要第一个包(无论版本),我指定的版本号不受尊重。举个例子也许是最好的:pipenv, version 9.0.3
Creating a virtualenv for this$