環境に応じて各テストで使用されるデータを取得するファイル data.py があります。CLI で指定されているため、sys.argv を使用して環境を取得します。
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)で並列テストを実行しようとすると、sys.argvが「-c」のみを返し、environmetパラメーターを取得できないため、エラーが発生します。
この記事を読みました: https://pypi.org/project/pytest-xdist/
ワーカーでマスター ノードから sys.argv にアクセスする マスター ノードのコマンドラインに渡された sys.argv にアクセスするには、request.config.workerinput["mainargv"] を使用します。
しかし、私の問題は、そのオプションを使用してフィクスチャとして送信する必要があり、クラスがなく、データを含む単なるファイルであるため、data.py でフィクスチャを使用できないことです。
xdist -n で並列テストを実行するときに、data.py の CLI から環境パラメーターを取得するにはどうすればよいですか?