如何修复tox警告test command found but not installed in testenv
警告触发原因
该警告的核心诱因是tox 3.7.0版本无法识别allowlist_externals配置项:
- tox 3.x全系列版本中,外部命令白名单的合法配置键为
whitelist_externals allowlist_externals是tox 4.0版本迭代时,为替换带有不当语义的旧配置名新增的键,3.7.0版本发布时间早于该重命名改动,既不支持新配置名,也没有做新旧配置的兼容映射- 当前配置中写入的
allowlist_externals = make会被tox 3.7.0判定为无效配置直接忽略,等同于未给docs环境声明外部命令白名单,tox检测到调用了未安装在虚拟环境内的系统路径/usr/bin/make时,就会抛出对应警告。
修复方案
可根据实际使用的tox版本范围选择对应方案:
- 仅使用tox 3.x版本:直接将配置项替换为3.x支持的旧键名即可,修改后的[testenv:docs]段配置如下:
[testenv:docs] deps = setuptools gitpython click commands = make clean make html SPHINXOPTS="-v" whitelist_externals = make
修改完成后重新执行tox命令,警告将不再触发。
- 需要同时兼容tox 3.x与4.x及以上版本:可以同时写入新旧两个配置项,不同版本的tox会自动识别自身支持的配置键,不会抛出配置错误:
[testenv:docs] deps = setuptools gitpython click commands = make clean make html SPHINXOPTS="-v" whitelist_externals = make allowlist_externals = make
- 可直接升级本地tox版本到4.0及以上:新版本原生支持
allowlist_externals配置,现有配置无需改动即可正常运行,不会触发该警告。
注意:配置白名单项时需确保命令名前后无多余不可见空格、缩进错误,否则可能出现命令匹配失败的问题。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

