für - Wie kann ich sicherstellen, dass in Hudson nur eine bestimmte Kategorie von Jobs gleichzeitig ausgeführt wird?



meta titel für suchmaschinen (2)

Ist das nicht Hudson Java?

Da Sie dieses Post-Python getaggt haben, werde ich darauf hinweisen, dass BuildBot über Slave-Sperren verfügt , um einzelne Schritte auf einzelnen Slaves zu beschränken (oder sie als grobere Sperren zu verwenden, wenn Sie möchten).

https://ffff65535.com

Ich benutze Hudson, um das Testen eines sehr großen wichtigen Produktes zu automatisieren. Ich möchte, dass meine Test-Hosts so viele gleichzeitige Builds ausführen können, wie sie theoretisch unterstützen, mit Ausnahme von Excel-Tests, die nur einen pro Maschine zu einem beliebigen Zeitpunkt ausführen dürfen. Eine beliebige Anzahl von Nicht-Excel-Tests kann gleichzeitig ausgeführt werden, jedoch muss höchstens ein Excel-Test pro Computer ausgeführt werden.

Hintergrund:

Die meisten meiner Tests sind normale Komponententests - die Art von Dingen, die ich leicht parallel laufen lassen kann. Leider besteht ein wesentlicher und zeitaufwendiger Teil meines Unit-Testing-Plans aus Tests, die in Excel implementiert wurden.

Sie könnten es für verrückt halten, einen Test in Excel zu implementieren - eigentlich gibt es einen wichtigen Grund: Die meisten unserer Benutzer greifen über ein Excel auf unser System zu. Excel hat seine eigenen schrulligen Möglichkeiten, mit Daten umzugehen. Der einzige Weg, um zu garantieren, dass unsere Sachen für Excel-Anwender funktionieren, ist, unseren Reg-Test buchstäblich in unsere Anwendung Excel zu implementieren.

Ich habe ein Test-Runner-Tool geschrieben, mit dem ich problemlos eine Gruppe von Excel-Tests auslösen kann: Jeder Test ist eine einzelne .xls-Datei. Jede Gruppe ist ein Ordner voller Excel-Dateien. Ich habe ungefähr 30 Gruppen, die für einen End-to-End-Test laufen müssen. Mein Tool konvertiert das Ergebnis jedes Tests in JUnit Style XML, das Hudson verstehen kann. Die Tests verwenden die pywin32com-Bibliothek, um Excel zu automatisieren. Wenn sie alleine laufen, sind sie zuverlässig.

Ich habe eine Gruppe von Computern, die Tests ausführen. Jede Maschine ist Quad-Core und kann theoretisch eine ganze Menge auf einmal laufen. Leider habe ich festgestellt, dass COM nicht verwendet werden kann, um mehr als 1 Excel pro Maschine gleichzeitig sicher zu steuern.

Das heißt, wenn ein 2. Build-Sterne, die versucht, mit Excel über COM zu kommunizieren, könnte es stören, die bereits ausgeführt wird und beide Tests fehlschlagen.

Ich kann so viele andere Non-Excel-Prozesse ausführen, wie es die Maschine zulässt, aber ich muss einen Weg finden, so dass Hudson nicht mehr als einen Prozess startet, der gleichzeitig auf einer Maschine ausgeführt werden muss.