如何在tox.ini的testenv中执行bash命令?
在tox.ini的testenv中执行bash命令的方法
原配置的问题
你给出的示例配置存在一个问题:tox会为commands下的每一条命令单独启动一个shell进程,因此第一条命令里设置的环境变量ABC无法传递到第二条命令中,执行后echo $ABC不会输出预期的123。
解决方法
方法1:将多条bash命令合并为单条shell执行
把需要连续执行的bash命令用bash -c包裹,让它们在同一个shell会话中运行,这样环境变量可以正常传递:
[testenv:testenv_name] description = testenv描述 commands = bash -c 'export ABC="123"; echo $ABC'
方法2:用tox自带的setenv配置环境变量
直接通过tox的setenv选项定义环境变量,tox会自动将变量注入到命令的执行环境中,无需手动执行export:
[testenv:testenv_name] description = testenv描述 setenv = ABC=123 commands = echo $ABC
内容的提问来源于stack exchange,提问作者kendallbp
相关产品推荐
相关产品推荐

