Ich möchte die Reihenfolge meiner Tests mit Logik steuern, die sie im laufenden Betrieb neu anordnet, während sie bereits ausgeführt werden.Reihenfolge der Tests dynamisch mit Pytest steuern
Mein Anwendungsfall ist dies: Ich parallelisiere meine Tests mit xdist, und jeder Test verwendet externe Ressourcen aus einem gemeinsamen und begrenzten Pool. Einige Tests verwenden mehr Ressourcen als andere. Wenn also nur ein Bruchteil der Ressourcen verfügbar ist, verfügen einige der Tests über die Ressourcen, die sie ausführen müssen, andere nicht.
Ich möchte die Verwendung der Ressourcen optimieren, also möchte ich dynamisch auswählen, welcher Test als nächstes ausgeführt wird, basierend auf den derzeit verfügbaren Ressourcen. Ich würde eine optimale Reihenfolge während der Sammlungsphase berechnen, aber ich weiß nicht im Voraus, wie lange jeder Test dauert, also kann ich nicht vorhersagen, welche Ressourcen wann verfügbar sein werden.
Ich habe keine Möglichkeit gefunden, dieses Verhalten mit einem Plugin zu implementieren, da die Sammlungsphase von der laufenden Phase zu unterscheiden scheint, und ich kenne keine andere Möglichkeit, die Liste der Tests anders als die zu ändern Sammelhaken.
Ich würde sehr schätzen alle Vorschläge, ob eine Möglichkeit, diese oder eine alternative Idee zu implementieren, die die Ressourcenauslastung optimieren würde. Meine Alternative ist es, meinen eigenen simplen Test zu schreiben, aber ich möchte nicht auf den Rest von pytest verzichten.
Danke!