当setup.cfg文件变更时,如何自动更新tox虚拟环境?
让tox在setup.cfg变更时自动重建虚拟环境的方法
有两种实用方案可以实现这个需求:
方案1:通过recreate选项监控setup.cfg文件
直接在tox.ini的[testenv]段中配置,让tox检测setup.cfg的文件变化,一旦内容修改就自动重建虚拟环境:
[testenv] deps = pytest pytest-cov >= 3.5 usedevelop = true # 以可编辑模式安装当前包,确保依赖变更生效 recreate = file:{toxinidir}/setup.cfg
{toxinidir}是tox内置变量,指向项目根目录(即setup.cfg所在目录)。
方案2:将当前包作为testenv的依赖
把你的Python包本身加入testenv的依赖列表,tox会自动计算包的元数据哈希,当setup.cfg中的依赖修改导致元数据变化时,就会触发虚拟环境重建:
[testenv] deps = . # 安装当前目录的包 pytest pytest-cov >= 3.5
如果你的项目用extras_require管理测试依赖,还能进一步简化:
先在setup.cfg中添加测试依赖的extras配置:
[options.extras_require] test = pytest pytest-cov >= 3.5
再修改tox.ini:
[testenv] deps = .[test]
这种方式更贴合Python包的依赖管理规范,同时能自动响应setup.cfg的变更。
内容的提问来源于stack exchange,提问作者Sean Hammond
相关产品推荐
相关产品推荐

