並行して実行したい数千のテストがあります。テストはすべて、0 またはゼロ以外のリターン コード (失敗した場合) を返すコンパイル済みバイナリです。それらのいくつかの未知のサブセットは、同じリソース (ファイル、ポートなど) を使用しようとします。各テストは、独立して実行されていることを前提としており、リソースが利用できない場合は失敗を報告するだけです。
サブプロセス モジュールを使用して各テストを起動するために Python を使用しています。並列化のために Nose を調べましたが、テストを自動生成する必要があり (1000 以上のバイナリのそれぞれをサブプロセスを使用する Python クラスにラップするため)、Nose のマルチプロセッシング モジュールは自動生成されたテストの並列化をサポートしていません。
最終的に PyTest に落ち着きました。これは、xdist プラグインを使用して SSH 経由でリモート ホスト上で自動生成されたテストを実行できるためです。
しかし、私が知る限り、xdist がテストの配布方法を制御する機能をサポートしているようには見えません。N 台のマシンのプールを提供し、マシンごとに 1 つのテストを実行したいと考えています。
私が望むことは PyTest/xdist で可能ですか? そうでない場合、私が探していることを実行できるツールはありますか?