执行python-behave测试时,如何将命令行参数转为环境变量?
解决Behave测试中命令行参数转环境变量的问题
不需要提交功能请求,直接在environment.py里通过Python的os.environ就能把命令行传入的参数转为测试可用的环境变量,具体做法如下:
- 在
environment.py中导入os模块 - 在合适的钩子函数(比如
before_all)中,从context.config.userdata取出参数并设置到环境变量中
示例代码:
import os def before_all(context): # 将命令行传入的ENVIRONMENT参数设置为系统环境变量 if 'ENVIRONMENT' in context.config.userdata: os.environ['ENVIRONMENT'] = context.config.userdata['ENVIRONMENT'] # 如果需要批量处理多个-D传入的参数,可循环设置: # for key, value in context.config.userdata.items(): # os.environ[key] = value
处理完成后,测试代码或被测试的应用代码都可以通过os.environ['ENVIRONMENT']读取到对应的值。如果需要给参数设置默认值,可使用get方法避免KeyError:
os.environ['ENVIRONMENT'] = context.config.userdata.get('ENVIRONMENT', 'dev')
内容的提问来源于stack exchange,提问作者A Campos
相关产品推荐
相关产品推荐

