如何在不同环境下从命令行准备 python 代码到 运行?

how to prepare python code to run from command line on different environment?

如何使用环境参数运行 python(行为)编码?例如 环境=X 行为 --tags @regression

我目前的情况是

@given(u'user is on the firts page')
def step_impl(context):
    context.first_page = FirstPage(context)
    context.first_page.goto(url_config.URL["X env"])

并作为字典 URL

URL = {
    "X env": "https://...",
    "Y env": "https://..."
    }

您应该为此使用环境变量。管道脚本应包含以下命令来定义您要 运行 反对的环境:

export ENV=X_env

在您的测试脚本中,获取环境变量并使用它来获取适当的 url:

import os
    
@given(u'user is on the firts page')
def step_impl(context):
    context.first_page = FirstPage(context)
    execute_in_environment = os.environ.get("ENV")
    context.first_page.goto(url_config.URL[execute_in_environment])

请注意,读取环境变量 - 所以这一行:execute_in_environment = os.environ.get("ENV") 通常在测试框架的较高级别与其他配置内容一起在某处完成。但严格按照问题中共享的内容进行,我已将其添加到步骤实现中,这不是最佳实践。

如果您想先在您的 Windows 站上试用,然后使用以下命令在 CMD 提示符中设置环境变量:

set ENV=X_env

因此,为了 运行 针对特定环境的测试,您将 运行 这些命令(这​​是一个 Linux 示例):

export ENV=X_env
behave --tags @regression