2

我有一个文件 data.py ,我根据环境获取每个测试中使用的数据,我使用 sys.argv 获取环境,因为它是在 CLI 中指定的。

def env():
if "--env=DEV" in sys.argv:
    return 'DEV'
elif "--env=UAT" in sys.argv:
    return 'UAT'
elif "--env=PROD" in sys.argv:
    return 'PROD'
elif "--env=TE" in sys.argv:
    return 'TE'
elif "--env=PERF" in sys.argv:
    return 'PERF'
else:
    return 'Incorrect environment'


if env() == 'UAT':
    policy_list_fnol_ap = ['30-60000550', '30-60000551', '30-60000555', '30-60000727', '30-60000798', '30-60000549']
    policy_list_fnol_auto = ['4-65000343', '44-45000075', '44-45000076', '4-65000344']
    policy_list_fnol_vida = ['23-54000022', '23-54000023', '17-55000042']

elif env() == 'DEV':
    policy_list_fnol_ap = ['30-60000301', '30-60000302', '30-60000303', '30-60000304', '30-60000305', '30-60000300']
    policy_list_fnol_auto = ['4-65000178', '44-45000030', '4-65000179', '44-45000031']
    policy_list_fnol_vida = ['23-54000020', '23-54000021', '17-55000018']

如果我用 pytest 运行它,它工作得很好,但是当我尝试用 xdist (-nx) 运行 pararel 测试时,我得到一个错误,因为 sys.argv 只返回“-c”,我不能得到 environmet 参数。

我读过这篇文章:https ://pypi.org/project/pytest-xdist/

从 worker 中的主节点访问 sys.argv 要访问传递给主节点命令行的 sys.argv,请使用 request.config.workerinput["mainargv"]。

但我的问题是,使用该选项我需要将其作为夹具发送,并且我不能在 data.py 中使用夹具,因为没有类,只是一个包含数据的文件。

当我使用 xdist -n 运行并行测试时,如何从 data.py 中的 CLI 获取环境参数?

4

0 回答 0