使用Python进行前沿依赖测试
作者:Faisal Dosani和Akshay Gupta,Capital One
任何语言的依赖管理都可能是一个挑战,Python也不例外。像pip和conda这样的工具使用依赖解析器尝试满足给定的需求,但版本冲突经常阻止安装;当pip在2020年10月引入新的解析器时,这个问题变得更加明显。上游包的新版本可能会破坏你的代码,如果你有一大串瞬态依赖,追踪罪魁祸首可能更具挑战性。
edgetest是一个开源的基于插件的Python包,旨在帮助开发者测试他们的代码与现有依赖项的新版本。edgetest通过以下方式帮助减轻依赖管理的一些负担:- 创建虚拟环境;- 将你的本地包安装到环境中;- 升级指定的依赖包;- 运行你的测试命令(例如pytest)。
维护成本和环境管理已成为使用pip解析器的“运行引擎”的一部分。现在,edgetest可以通过自动化前沿依赖测试来帮助减少包的维护成本。例如,如果你依赖于pandas>=0.25.1,<=1.0.0,edgetest将测试你的项目与当前的pandas版本(截至撰写时为1.4.1)。有了有效的测试套件,你将知道是否可以安全地升级到pandas>=0.25.1,<=1.4.1。edgetest将根据测试结果报告是否可以安全升级。在升级所有上游包以识别任何潜在的交互之前,它将为每