私のシナリオは、何らかのイベントが発生したときに接続された websocket に通知するサーバーで構成されています。Websocket クエリ パラメータは、クライアントに通知するイベントの種類を指定します。
通知用の一連の定義済みイベントと、予想される一致イベントがわかっている一連の Websocket URL があります。
私が取得したいのは、次のことです。
- 通知サービスを開始します (イベントのストリームを待っています)
- テストごとに、websocket を介してクライアントを接続します
- イベント ストリームを開始する
- ストリームが完了したら通知サーバーを停止します (websocket を閉じます)
- クライアント (テスト) は、受信したイベントが予想されるイベントと一致することを Websocket クロージャーでチェックします。
このシナリオは、すべてのテストが同時に実行された場合にのみ機能します。このため、「-n」を使用して pytest-xdist を使用することを考えました。
残念ながら、これはうまくいかないようです。私が取得した 8 つのテストは、予想どおり 4 つのテストがすぐに実行されますが、最後の 4 つのテストは、最初のテストが終了したときにのみ開始されます。
pytest-xdist コード ( dession.py:366-368 )を正しく理解している場合、テストは少なくとも 2 つのテストのチャンクでスレーブ間で分割されているように見えます。
これは明らかに、私のセットアップを危険にさらし、動作を説明します。
誰かがこの問題の回避策を思い付くことができますか?