2017-05-23 3 views
1

Ich arbeite daran, NUnit Console Runner mit Jenkins auszuführen. Diese Tests verbinden sich mit einem Selenium Grid (das auch von Jenkins betrieben wird), daher möchte ich ihre Parallelität begrenzen, um zu vermeiden, dass Agenten hungern, während sie auf einen freien Knoten im Grid warten.Unterschied zwischen Agenten und Worker-Threads

Bisher habe ich nicht herausgefunden, was genau ist der Unterschied zwischen einem agent und einem worker thread in NUnit ... Ich vermute, der Agent kann Threads verwalten, aber es ist nur eine Vermutung. Danke :)

Antwort

0

Ein Agent ist ein separater Prozess, der Tests für eine Baugruppe ausführt. Ein Worker ist ein Thread innerhalb eines Prozesses, der die Tests für eine bestimmte Assembly ausführt.

Theoretisch könnte ein Agent-Prozess mehrere Anwendungsdomänen haben, jede Domäne könnte mehrere Assemblys enthalten und jede Assembly könnte mehrere Worker-Threads haben. Normalerweise ist es jedoch normal, einen Prozess pro Assembly zu verwenden, so dass mehrere Domänen nicht erforderlich sind und jeder Prozess eine bestimmte Anzahl von Worker-Threads ausführt, um Tests für die Assembly auszuführen. In einigen Kontexten ziehen Sie es vor, Prozesse nur parallel auszuführen und keine Parallelität innerhalb der Assembly zu haben. Dies ist der Ansatz, der höchstwahrscheinlich ohne Änderungen an Ihren Tests funktioniert, die Sie möglicherweise nicht mit Blick auf Parallelität entworfen haben.

Agenten "verwalten" keine Threads. Sie führen das Framework einfach in einem Prozess aus, und das Framework legt fest, wie viele Threads abhängig von den angewendeten Attributen verwendet werden sollen.

Mit mehreren Agenten ist die nur Weg, Nunit V2 Tests parallel zu laufen, da das v2-Framework der Parallelität nicht kennt.

+0

Vielen Dank für die ausführliche Antwort! Ich benutze nunit V3 und jedes meiner Fixtures ist in sich abgeschlossen, so dass jeder Runner eine Assembly (d. H. Einen Agenten) ausführt und für Assemblys, die das Selenium Grid verwenden, verwende ich eine feste Anzahl von Threads. – towel