問題タブ [xdist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
157 参照

python - Pytest を使用すると、各クラスに複数のテストがあるのに、同時に 2 つのテスト クラスを同時に実行する方法が見つかりません。

私はPytestを使用しており、次のテスト構造を持っています:

ClassA.py

---------------test_a

---------------test_b

---------------test_c

また、

ClassB.py

---------------test_d

---------------test_e

---------------test_f

端末コマンドでテストを実行しています (例: pytest -v -s ClassA.py)

私の質問: 各クラスの順序を個別に維持しながら、ClassA と ClassB を並行して (2 つのインスタンスと言うかもしれません) 実行する方法はありますか? つまり、ClassA のすべてのテストを最初のブラウザー インスタンスで実行し、ClassB のすべてのテストを別のインスタンスで実行します。

また、「pytest-xdist」プラグインを使用した並列テストの実行にも精通しています。しかし、それを使用すると、ClassA と ClassB にあるテスト ケースが混在した順序で実行されるので、それは私にとっては良くありません。

編集: 私の主な目的は、test_b の別のブラウザー インスタンスで test_a を実行しないようにすることです。各クラスのテストを同じブラウザ インスタンスで実行したい

0 投票する
0 に答える
96 参照

python - pytest と xdist を使用して CLI パラメーターにアクセスする

環境に応じて各テストで使用されるデータを取得するファイル data.py があります。CLI で指定されているため、sys.argv を使用して環境を取得します。

これを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 から環境パラメーターを取得するにはどうすればよいですか?